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:

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:

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:

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:

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
["ITRS Analytics"] ["ITRS Analytics > API Gateway"] ["User Guide"]

Was this topic helpful?