Ingestion API
Note
Version: 1.0.0
Base URL:https://next.itrslab.com/ingestion/api
The Ingestion API provides endpoints for managing data ingestion, filtering, throttling, and retention policies within the ITRS Analytics platform. This API allows you to control how data flows into the system and configure retention policies for different data types.
Authentication Copied
All endpoints require proper authentication. Include your authentication headers with each request.
Ingestion Filters Copied
Ingestion filters allow you to control which data points are ingested into the system. You can create dimension filters, expression filters, or Geneos filters to selectively include or exclude data based on various criteria.
Create Ingestion Filter Copied
POST /v1/create-ingestion-filter
Creates one of the ingestion filter types: dimension, expression, or Geneos.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
spec |
Object | Yes | The filter specification (see examples below) |
enabled |
Boolean | Yes | Whether the filter is enabled |
name |
String | No | Name/description of the filter (max 32 characters) |
Example Request (Dimension Filter) Copied
{
"spec": {
"dimensionFilter": {
"dimensions": {
"dimKey1": "dimValue1",
"dimKey2": "dimValue2"
},
"dataPointTypes": ["DATAPOINT_TYPE_UNDEFINED"]
}
},
"enabled": true,
"name": "Example Dimension Filter"
}
Example Request (Expression Filter) Copied
{
"spec": {
"expressionFilter": {
"expression": {
"boolean": {
"left": {
"set": {
"name": "container",
"values": ["container1", "container2"]
}
},
"right": {
"comparison": {
"name": "client",
"value": "client1"
}
}
}
},
"dataPointTypes": ["DATAPOINT_TYPE_UNDEFINED"]
}
},
"enabled": true,
"name": "Example Expression Filter"
}
Example Request (Geneos Filter) Copied
{
"spec": {
"geneosFilter": {
"filters": [{
"include": {
"rows": ["rowFilter1", "rowFilter2"],
"dataviews": ["dataviewFilter1", "dataviewFilter2"],
"plugins": ["pluginFilter1", "pluginFilter2"],
"gateways": ["gatewayFilter1", "gatewayFilter2"]
},
"exclude": {
"rows": ["rowFilter1", "rowFilter2"],
"dataviews": ["dataviewFilter1", "dataviewFilter2"],
"plugins": ["pluginFilter1", "pluginFilter2"],
"gateways": ["gatewayFilter1", "gatewayFilter2"]
}
}]
}
},
"enabled": true,
"name": "Example Geneos Filter"
}
Example Response Copied
{
"filter": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"version": "1",
"enabled": true,
"spec": {
"dimensionFilter": {
"dimensions": {
"dimKey1": "dimValue1",
"dimKey2": "dimValue2"
},
"dataPointTypes": ["DATAPOINT_TYPE_UNDEFINED"]
}
},
"name": "Example Dimension Filter"
}
}
Get All Ingestion Filters Copied
GET /v1/ingestion-filters
Returns an array of all configured ingestion filters.
Parameters Copied
None required.
Example Response Copied
{
"filters": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"version": "1",
"enabled": true,
"spec": {
"dimensionFilter": {
"dimensions": {
"dimKey1": "dimValue1"
},
"dataPointTypes": ["DATAPOINT_TYPE_GAUGE"]
}
},
"name": "Example Filter"
}
]
}
Delete Ingestion Filter Copied
DELETE /v1/ingestion-filter/{id}
Deletes an existing ingestion filter identified by its unique ID.
Path Parameters Copied
Parameter | Type | Required | Description |
---|---|---|---|
id |
String | Yes | ID of filter to delete |
Example Response Copied
{}
Modify Ingestion Filter Copied
POST /v1/modify-ingestion-filter
Modifies an existing ingestion filter. The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
id |
String | Yes | ID of filter to modify |
version |
String | Yes | The current version |
spec |
Object | Yes | The modified filter specification |
enabled |
Boolean | Yes | Whether the filter is enabled |
name |
String | No | Name/description of the filter (max 32 characters) |
Example Request Copied
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"version": "1",
"spec": {
"dimensionFilter": {
"dimensions": {
"dimKey1": "updatedValue1",
"dimKey2": "updatedValue2"
},
"dataPointTypes": ["DATAPOINT_TYPE_GAUGE"]
}
},
"enabled": true,
"name": "Updated Filter Name"
}
Example Response Copied
{
"version": "2"
}
Toggle Ingestion Filter Copied
POST /v1/toggle-ingestion-filter
Toggles the enabled field of an existing ingestion filter. The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
id |
String | Yes | ID of filter to modify |
version |
String | Yes | The current version |
enabled |
Boolean | Yes | Whether the filter is enabled |
Example Request Copied
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"version": "1",
"enabled": false
}
Example Response Copied
{
"version": "2"
}
Ingestion Throttles Copied
Ingestion throttles allow you to control the rate at which data is ingested into the system to prevent overwhelming the platform.
Create Ingestion Throttle Copied
POST /v1/create-ingestion-throttle
Creates an ingestion throttle to limit data ingestion rates.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
enabled |
Boolean | Yes | Whether the throttle is enabled |
spec |
Object | Yes | Throttle specifications |
spec.scope |
String | Yes | Scope of messages (e.g., “INGESTION_THROTTLE_SCOPE_METRICS”) |
spec.maxRate |
Integer | Yes | Maximum ingestion throughput in data points per second |
spec.burstFactor |
Integer | Yes | Burst factor multiplied with max rate for periodic bursts |
Example Request Copied
{
"enabled": true,
"spec": {
"scope": "INGESTION_THROTTLE_SCOPE_METRICS",
"maxRate": 1000,
"burstFactor": 2
}
}
Example Response Copied
{
"throttle": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"version": "1",
"enabled": true,
"spec": {
"scope": "INGESTION_THROTTLE_SCOPE_METRICS",
"maxRate": 1000,
"burstFactor": 2
}
}
}
Get All Ingestion Throttles Copied
GET /v1/ingestion-throttles
Returns an array of all configured ingestion throttles.
Parameters Copied
None required.
Example Response Copied
{
"throttles": [
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"version": "1",
"enabled": true,
"spec": {
"scope": "INGESTION_THROTTLE_SCOPE_METRICS",
"maxRate": 1000,
"burstFactor": 2
}
}
]
}
Delete Ingestion Throttle Copied
DELETE /v1/ingestion-throttle/{id}
Deletes an existing ingestion throttle identified by its unique ID.
Path Parameters Copied
Parameter | Type | Required | Description |
---|---|---|---|
id |
String | Yes | ID of throttle to delete |
Example Response Copied
{}
Modify Ingestion Throttle Copied
POST /v1/modify-ingestion-throttle
Modifies an existing ingestion throttle. The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
id |
String | Yes | ID of throttle to modify |
version |
String | Yes | The current version |
enabled |
Boolean | Yes | Whether the throttle is enabled |
spec |
Object | Yes | The new throttle specification |
Example Request Copied
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"version": "1",
"enabled": true,
"spec": {
"scope": "INGESTION_THROTTLE_SCOPE_METRICS",
"maxRate": 2000,
"burstFactor": 3
}
}
Example Response Copied
{
"version": "2"
}
Toggle Ingestion Throttle Copied
POST /v1/toggle-ingestion-throttle
Toggles the enabled field of an existing ingestion throttle. The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
id |
String | Yes | ID of throttle to modify |
version |
String | Yes | The current version |
enabled |
Boolean | Yes | Whether the throttle is enabled |
Example Request Copied
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"version": "1",
"enabled": false
}
Example Response Copied
{
"version": "2"
}
Data Retention Copied
Data retention policies control how long different types of data are stored in the system before being automatically deleted.
Create Metric Retention Policy Copied
POST /v1/metric-retention-policy
Creates a metric retention policy with a valid metric name regex pattern, time bucket size, priority, and duration.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
policy |
Object | Yes | Retention policy configuration |
policy.pattern |
String | Yes | Valid regex pattern for metric names |
policy.bucket |
String | Yes | Time bucket (METRIC_BUCKET_RAW, METRIC_BUCKET_5M, METRIC_BUCKET_1H, METRIC_BUCKET_1D) |
policy.priority |
Integer | Yes | Priority (1 or greater) |
policy.duration |
String | Yes | Duration in seconds (min 60 mins for raw/5m, 1 day for 1h/1d, max 10 years) |
policy.version |
String | Yes | Version number (1 or greater) |
Example Request Copied
{
"policy": {
"pattern": "name_pattern_*",
"bucket": "METRIC_BUCKET_RAW",
"priority": 1,
"duration": "604800s",
"version": "1"
}
}
Example Response Copied
{
"version": "1"
}
Get All Retention Policies Copied
GET /v1/retention-policy
Returns two arrays of retention policies: metric and non-metric.
Parameters Copied
None required.
Example Response Copied
{
"metricRetentionPolicies": [
{
"pattern": "name_pattern_*",
"bucket": "METRIC_BUCKET_RAW",
"priority": 1,
"duration": "604800s",
"version": "1"
}
],
"retentionPolicies": [
{
"name": "spans",
"duration": "1209600s",
"version": "1"
}
]
}
Delete Metric Retention Policy Copied
POST /v1/delete-metric-retention-policy
Deletes an existing metric retention policy matching on regex pattern, time bucket size, and priority. The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
policy |
Object | Yes | Policy to delete |
policy.pattern |
String | Yes | Regex pattern of policy to delete |
policy.bucket |
String | Yes | Time bucket of policy to delete |
policy.priority |
Integer | Yes | Priority of policy to delete |
policy.version |
String | Yes | Current version number |
Example Request Copied
{
"policy": {
"pattern": "name_pattern_*",
"bucket": "METRIC_BUCKET_RAW",
"priority": 1,
"version": "2"
}
}
Example Response Copied
{
"version": "3"
}
Update Metric Retention Policy Copied
POST /v1/update-metric-retention-policy
Updates an existing metric retention policy matching on regex pattern, time bucket size, and priority. The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
policy |
Object | Yes | Updated policy configuration |
policy.pattern |
String | Yes | Regex pattern (identifies existing policy) |
policy.bucket |
String | Yes | Time bucket (identifies existing policy) |
policy.priority |
Integer | Yes | Priority (identifies existing policy) |
policy.duration |
String | Yes | New duration in seconds |
policy.version |
String | Yes | Current version number |
Example Request Copied
{
"policy": {
"pattern": "name_pattern_*",
"bucket": "METRIC_BUCKET_RAW",
"priority": 1,
"duration": "1209600s",
"version": "1"
}
}
Example Response Copied
{
"version": "2"
}
Update Non-Metric Retention Policy Copied
POST /v1/update-retention-policy
Updates a default non-metric retention policy matching on name. The duration is in seconds (between 60 mins and 10 years). The supplied version number must match the currently stored version number.
Request Body Copied
Parameter | Type | Required | Description |
---|---|---|---|
policy |
Object | Yes | Updated policy configuration |
policy.name |
String | Yes | Policy name (identifies existing policy) |
policy.duration |
String | Yes | New duration in seconds (60 mins to 10 years) |
policy.version |
String | Yes | Current version number |
Example Request Copied
{
"policy": {
"name": "spans",
"duration": "1209600s",
"version": "1"
}
}
Example Response Copied
{
"version": "2"
}
Error Responses Copied
All endpoints may return error responses in the following format:
{
"title": "Bad Request",
"message": "The file name must be set",
"details": {
"type": "validation_error",
"path": ".file.name"
}
}
Common HTTP status codes:
200 OK
- Request successful400 Bad Request
- Invalid request parameters401 Unauthorized
- Authentication required404 Not Found
- Resource not found409 Conflict
- Version mismatch or resource conflict500 Internal Server Error
- Server error
Schemas Copied
This section describes the data models used throughout the Ingestion API, organized alphabetically by schema name.
Any Copied
Generic container for arbitrary data with YAML serialization support.
Field | Type | Description |
---|---|---|
value |
GoogleProtobufAny | Serialized message with type information |
yaml |
String | YAML representation |
CreateIngestionFilterRequestApp Copied
Create ingestion filter request schema.
Field | Type | Required | Description |
---|---|---|---|
spec |
FilterSpec | Yes | The filter specification |
enabled |
Boolean | Yes | Whether the filter is enabled |
name |
String | No | Optional name (max 32 characters) |
CreateIngestionFilterResponse Copied
Response schema for creating an ingestion filter.
Field | Type | Description |
---|---|---|
filter |
IngestionFilter | The newly created filter |
CreateIngestionThrottleRequest Copied
Create ingestion throttle request schema.
Field | Type | Required | Description |
---|---|---|---|
enabled |
Boolean | Yes | Whether the throttle is enabled |
spec |
ThrottleSpec | Yes | Throttle specifications |
CreateIngestionThrottleResponse Copied
Response schema for creating an ingestion throttle.
Field | Type | Description |
---|---|---|
throttle |
IngestionThrottle | The newly created throttle |
CreateMetricRetentionPolicyRequest Copied
Create metric retention policy request schema.
Field | Type | Required | Description |
---|---|---|---|
policy |
MetricRetentionPolicy | Yes | Retention policy configuration |
CreateMetricRetentionPolicyResponse Copied
Response schema for creating a metric retention policy.
Field | Type | Description |
---|---|---|
version |
String | New version number after creation |
DeleteIngestionFilterResponse Copied
Response schema for deleting an ingestion filter (empty object).
Field | Type | Description |
---|---|---|
No fields returned |
DeleteIngestionThrottleResponse Copied
Response schema for deleting an ingestion throttle (empty object).
Field | Type | Description |
---|---|---|
No fields returned |
DeleteMetricRetentionPolicyRequest Copied
Delete metric retention policy request schema.
Field | Type | Required | Description |
---|---|---|---|
policy |
MetricRetentionPolicy | Yes | Policy to delete (version must match) |
DeleteMetricRetentionPolicyResponse Copied
Response schema for deleting a metric retention policy.
Field | Type | Description |
---|---|---|
version |
String | New version number after deletion |
DimensionFilter Copied
Filters data points based on dimension key-value pairs.
Field | Type | Description |
---|---|---|
dimensions |
Map<String, String> | Key-value pairs that data points must contain |
dataPointTypes |
Array |
Optional filter by data point types |
Supported Data Point Types:
DATAPOINT_TYPE_UNDEFINED
DATAPOINT_TYPE_COUNTER
DATAPOINT_TYPE_DOWNSAMPLED_METRIC
DATAPOINT_TYPE_ENTITY_ATTRIBUTE
DATAPOINT_TYPE_ENTITY_GROUP_SNAPSHOT
DATAPOINT_TYPE_GAUGE
DATAPOINT_TYPE_GENERIC_EVENT
DATAPOINT_TYPE_GENERIC_HISTOGRAM
DATAPOINT_TYPE_LOG_EVENT
DATAPOINT_TYPE_STATUS_METRIC
DATAPOINT_TYPE_SIGNAL_EVENT
DATAPOINT_TYPE_SNOOZE_EVENT
DATAPOINT_TYPE_ENTITY_ATTRIBUTE_GROUP_SNAPSHOT
DATAPOINT_TYPE_OPEN_TELEMETRY_SPAN_GROUP
DATAPOINT_TYPE_OPEN_TELEMETRY_SPAN
DATAPOINT_TYPE_OPEN_TELEMETRY_LOG
DATAPOINT_TYPE_OPEN_TELEMETRY_METRIC
DATAPOINT_TYPE_AUDIT_EVENT
Expression Copied
Complex expression object used in expression filters for advanced dimension matching. The structure supports boolean operations, set operations, and comparisons.
Field | Type | Description |
---|---|---|
additionalProperties |
Array |
Additional dynamic properties |
ExpressionFilter Copied
Filters data points using complex expression logic for dimension matching.
Field | Type | Description |
---|---|---|
expression |
Expression | Complex expression for dimension matching |
dataPointTypes |
Array |
Optional filter by data point types |
FilterSpec Copied
Defines the specification for different types of ingestion filters. Only one filter type should be specified.
Field | Type | Description |
---|---|---|
dimensionFilter |
DimensionFilter | Filter by unordered dimensions |
expressionFilter |
ExpressionFilter | Filter by complex expressions |
geneosFilter |
GeneosDataFilterSet | Filter Geneos dataview row data points |
GeneosDataFilter Copied
Individual Geneos filter with include/exclude selectors.
Field | Type | Description |
---|---|---|
include |
GeneosDataSelector | Data points to include |
exclude |
GeneosDataSelector | Data points to exclude (takes precedence) |
enabled |
Boolean | Whether this specific filter is enabled |
name |
String | Optional name/description (max 32 characters) |
GeneosDataFilterSet Copied
Container for Geneos-specific filters that process dataview row data points.
Field | Type | Description |
---|---|---|
filters |
Array |
Array of Geneos filters applied in order |
Filter Application Logic:
- Filters are evaluated in the specified order
- Within each filter, exclude selectors take precedence over include selectors
- If no filters select a data point, it is excluded by default
GeneosDataSelector Copied
Selects Geneos data points based on path elements.
Field | Type | Description |
---|---|---|
rows |
Array |
Row filters (use ‘*’ for all rows) |
dataviews |
Array |
Dataview filters (use ‘*’ for all dataviews) |
plugins |
Array |
Plugin filters (use ‘*’ for all plugins) |
gateways |
Array |
Gateway filters (use ‘*’ for all gateways) |
GetIngestionFiltersResponse Copied
Response schema for retrieving all ingestion filters.
Field | Type | Description |
---|---|---|
filters |
Array |
All configured filters |
GetIngestionThrottlesResponse Copied
Response schema for retrieving all ingestion throttles.
Field | Type | Description |
---|---|---|
throttles |
Array |
All configured throttles |
GetRetentionPoliciesResponse Copied
Response schema for retrieving all retention policies.
Field | Type | Description |
---|---|---|
metricRetentionPolicies |
Array |
Metric retention policies |
retentionPolicies |
Array |
Non-metric retention policies |
GoogleProtobufAny Copied
Protocol Buffers Any type for type-safe serialization.
Field | Type | Description |
---|---|---|
@type |
String | Type URL of the serialized message |
* |
Any | Additional fields based on the type |
IngestionFilter Copied
Represents a configured ingestion filter that controls which data points are ingested.
Field | Type | Description |
---|---|---|
id |
String | Unique identifier encoded as UUID |
version |
String | Current version number |
enabled |
Boolean | Whether the filter is enabled |
spec |
FilterSpec | Filter specification defining the filter logic |
name |
String | Optional name/description of the filter |
IngestionThrottle Copied
Represents a configured ingestion throttle that controls data ingestion rates.
Field | Type | Description |
---|---|---|
id |
String | Unique identifier encoded as UUID |
version |
String | Current version number |
enabled |
Boolean | Whether the throttle is enabled |
spec |
ThrottleSpec | Throttle specification defining rate limits |
MetricRetentionPolicy Copied
Represents a retention policy for metric data with regex pattern matching.
Field | Type | Description |
---|---|---|
pattern |
String | Valid regex pattern for matching metric names |
bucket |
String | Time bucket (METRIC_BUCKET_RAW, METRIC_BUCKET_5M, METRIC_BUCKET_1H, METRIC_BUCKET_1D) |
priority |
Integer | Priority level (1 or greater) |
duration |
String | Retention duration in seconds |
version |
String | Version number for optimistic concurrency control |
ModifyIngestionFilterRequestApp Copied
Modify ingestion filter request schema.
Field | Type | Required | Description |
---|---|---|---|
id |
String | Yes | Filter ID to modify |
version |
String | Yes | Current version |
spec |
FilterSpec | Yes | Updated filter specification |
enabled |
Boolean | Yes | Whether the filter is enabled |
name |
String | No | Optional updated name |
ModifyIngestionFilterResponse Copied
Response schema for modifying an ingestion filter.
Field | Type | Description |
---|---|---|
version |
String | New version number after modification |
ModifyIngestionThrottleRequest Copied
Modify ingestion throttle request schema.
Field | Type | Required | Description |
---|---|---|---|
id |
String | Yes | Throttle ID to modify |
version |
String | Yes | Current version |
enabled |
Boolean | Yes | Whether the throttle is enabled |
spec |
ThrottleSpec | Yes | Updated throttle specification |
ModifyIngestionThrottleResponse Copied
Response schema for modifying an ingestion throttle.
Field | Type | Description |
---|---|---|
version |
String | New version number after modification |
NamedAny Copied
Represents maps of Any as ordered (name,value) pairs.
Field | Type | Description |
---|---|---|
name |
String | Map key |
value |
Any | Mapped value |
RetentionPolicy Copied
Represents a retention policy for non-metric data types.
Field | Type | Description |
---|---|---|
name |
String | Policy name identifier |
duration |
String | Retention duration in seconds (60 mins to 10 years) |
version |
String | Version number for optimistic concurrency control |
ThrottleSpec Copied
Defines the rate limiting configuration for ingestion throttles.
Field | Type | Description |
---|---|---|
scope |
String | Scope of throttling (INGESTION_THROTTLE_SCOPE_METRICS) |
maxRate |
Integer | Maximum ingestion rate in data points per second |
burstFactor |
Integer | Multiplier for burst capacity above max rate |
Supported Scopes:
INGESTION_THROTTLE_SCOPE_UNDEFINED
INGESTION_THROTTLE_SCOPE_METRICS
ToggleIngestionFilterRequest Copied
Toggle ingestion filter request schema.
Field | Type | Required | Description |
---|---|---|---|
id |
String | Yes | Filter ID to toggle |
version |
String | Yes | Current version |
enabled |
Boolean | Yes | New enabled state |
ToggleIngestionFilterResponse Copied
Response schema for toggling an ingestion filter.
Field | Type | Description |
---|---|---|
version |
String | New version number after toggle |
ToggleIngestionThrottleRequest Copied
Toggle ingestion throttle request schema.
Field | Type | Required | Description |
---|---|---|---|
id |
String | Yes | Throttle ID to toggle |
version |
String | Yes | Current version |
enabled |
Boolean | Yes | New enabled state |
ToggleIngestionThrottleResponse Copied
Response schema for toggling an ingestion throttle.
Field | Type | Description |
---|---|---|
version |
String | New version number after toggle |
UpdateMetricRetentionPolicyRequest Copied
Update metric retention policy request schema.
Field | Type | Required | Description |
---|---|---|---|
policy |
MetricRetentionPolicy | Yes | Updated policy configuration |
UpdateMetricRetentionPolicyResponse Copied
Response schema for updating a metric retention policy.
Field | Type | Description |
---|---|---|
version |
String | New version number after update |
UpdateRetentionPolicyRequest Copied
Update retention policy request schema.
Field | Type | Required | Description |
---|---|---|---|
policy |
RetentionPolicy | Yes | Updated non-metric policy |
UpdateRetentionPolicyResponse Copied
Response schema for updating a retention policy.
Field | Type | Description |
---|---|---|
version |
String | New version number after update |