{"type":"model","meta":{"id":"/apps/pubhub/media/000-v7-apis/b97ae8cc8b8a3e5b212131991f97cca7b29bc49d/4bef5bf8-85e1-3e97-9841-756deb0d4d50","info":{"description":"ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry.\n\nThousandEyes for OTel is made up of the following components:\n\n* Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams,\nin particular to configure how ThousandEyes telemetry data is exported to client integrations.\n* A set of streaming pipelines called _collectors_ that actively fetch ThousandEyes network test data, enrich the data with some additional\ndetail, filter, and push the data to the customer-configured endpoints, depending on what you configure via the public APIs.\n* Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client\nconfiguration.\n\nFor more information about ThousandEyes for OpenTelemetry, see the [product documentation](https://docs.thousandeyes.com/product-documentation/integration-guides/opentelemetry).\n","title":"ThousandEyes for OpenTelemetry API","version":"7.0.69"},"security":[{"BearerAuth":[]}],"tags":[{"description":"Configure data streaming","name":"Streaming"}],"openapi":"3.0.1","servers":[{"description":"ThousandEyes API production URL","url":"https://api.thousandeyes.com/v7"}],"securitySchemes":{"BearerAuth":{"description":"Bearer authentication token","scheme":"bearer","type":"http"}}},"spec":{"properties":{"customHeaders":{"additionalProperties":{"type":"string"},"description":"Custom headers.","example":{"Authorization":"*****","Content-Type":"*****"},"type":"object"},"streamEndpointUrl":{"description":"The URL ThousandEyes sends data stream to.\nFor a URL to be valid, it needs to: - Be syntactically correct. - Be reachable. - Use the HTTPS protocol. - When using the `grpc` endpointType, streamEndpointUrl cannot contain paths:\n - Valid . `grpc` - `https://example.com`\n - Invalid . `grpc` - `https://example.com/collector`.\n - Valid . `http` - `https://example.com/collector`.\n\n- When using the `http` endpointType, the operation must match the exact final full URL (including the path if there is one) to which the data will be sent. Examples below:\n - `https://api.honeycomb.io:443/v1/metrics`\n - `https://ingest.eu0.signalfx.com/v2/datapoint/otlp`","example":"https://api.thousandeyes.otel-collector","type":"string"},"tagMatch":{"description":"A collection of tags that determine what tests are included in the data stream. These tag values are also included as attributes in the data stream metrics. Tags are invalid if the tag key includes characters that are not allowed by the [OpenTelemetry naming recommendations for attributes](https://opentelemetry.io/docs/specs/semconv/general/naming/#recommendations-for-application-developers).","example":[{"key":"keyA","value":"valueA"},{"key":"keyB","value":"valueB"}],"items":{"properties":{"key":{"description":"The name of the tag key to match. The key is invalid if it includes characters that are not allowed by the [OpenTelemetry naming recommendations for attributes](https://opentelemetry.io/docs/specs/semconv/general/naming/#recommendations-for-application-developers).","example":"keyA","type":"string"},"value":{"description":"The value of the tag to match","example":"valueA","type":"string"}},"type":"object","$$ref":"#/components/schemas/TagMatch"},"type":"array"},"testMatch":{"description":"A collection of tests to be included in the data stream.","example":[{"id":"1234","domain":"cea"},{"id":"5678","domain":"endpoint"}],"items":{"properties":{"id":{"description":"The ID of the test to match.","example":"1234","type":"string"},"domain":{"description":"The domain of the test to match.\n `cea` - Cloud and Enterprise Agent\n `endpoint` - Endpoint Agent","enum":["cea","endpoint"],"example":"cea","type":"string","$$ref":"#/components/schemas/TestMatchDomain"}},"type":"object","$$ref":"#/components/schemas/TestMatch"},"type":"array"},"enabled":{"description":"Flag to enable or disable the stream integration.","example":true,"type":"boolean"},"filters":{"description":"Provides the ability to filter data points based on the specified test types.","properties":{"testTypes":{"description":"Test types that can be used for filtering data points.","properties":{"values":{"description":"A list of test types to filter data points.","example":["agent-to-server","bgp","http-server"],"items":{"description":"This is a read only value, as test type is implicit in the test creation url.","enum":["api","agent-to-agent","agent-to-server","bgp","http-server","page-load","web-transactions","ftp-server","dns-trace","dns-server","dnssec","sip-server","voice"],"example":"agent-to-server","readOnly":true,"type":"string","$$ref":"#/components/schemas/TestType"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/FiltersTestTypes"}},"type":"object","$$ref":"#/components/schemas/Filters"},"exporterConfig":{"description":"Capability to set exporter configuration.","properties":{"splunkHec":{"description":"Splunk HEC configuration. This can only be configured when the `type` is `splunk-hec`.","properties":{"token":{"description":"The Splunk HEC `token`. This is a required field.","example":"d0a91307-be2f-4218-a9f8-71c02d98846b","type":"string"},"source":{"default":"ThousandEyesOTel","description":"The Splunk HEC `source`. This field is optional.","example":"ThousandEyesOTel","type":"string"},"sourceType":{"default":"ThousandEyesOTel","description":"The Splunk HEC `sourceType`. This field is optional.","example":"ThousandEyesOTel","type":"string"},"index":{"description":"The name of the Splunk HEC index where the event data will be stored. This field is optional.","example":"thousandeyes_otel_events_index","type":"string"}},"type":"object","$$ref":"#/components/schemas/ExporterConfigSplunkHec"},"authorization":{"description":"Authentication configuration type.","properties":{"oAuth2":{"description":"OAuth2 authentication configuration.","properties":{"clientId":{"description":"The OAuth2 client ID.","example":"1234567890","type":"string"},"clientSecret":{"description":"The OAuth2 client secret.","example":"1234567890","type":"string"},"tokenUrl":{"description":"The OAuth2 token URL.","example":"https://example.com/token","type":"string"},"scopes":{"description":"The OAuth2 scopes.","example":["read","write"],"items":{"type":"string"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/ExporterConfigOAuth2"}},"type":"object","$$ref":"#/components/schemas/ExporterConfigAuthorization"}},"type":"object","$$ref":"#/components/schemas/ExporterConfig"},"endpointAgentLabel":{"description":"A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream.","items":{"description":"Endpoint Agent label configuration.","properties":{"id":{"description":"The label ID of Endpoint Agent labels.","example":"1234","type":"string"}},"type":"object","$$ref":"#/components/schemas/EndpointAgentLabel"},"type":"array"}},"type":"object","$$ref":"#/components/schemas/PutStream","title":"PutStream"}}