Supported telemetry types
The OpenMetrics integration supports these telemetry types:Prerequisites
The OpenMetrics integration has the following prerequisites:- Make each OpenMetrics or Prometheus endpoint reachable from the collector.
- Identify the metric names to collect from each endpoint.
Configure
To configure the OpenMetrics integration, follow these steps:- For discovered endpoints, provide the full endpoint URL and the metrics to collect through autodiscovery annotations. For more information, see autodiscovery.
-
Optional: Configure static targets. For example, add the following to the
values.yamlfor your Helm chart:
Validate
To validate the OpenMetrics integration, follow these steps:-
In the Live Telemetry Analyzer, filter for
cxdot.integration.name=openmetrics. Confirm that the selected metric names appear. -
If you used the preceding static target example, run the following query in Metrics
Explorer:
Confirm that the query returns the expected time series for each target.
Configuration reference
Configure one OpenMetrics integration instance with the following settings. In Helm values, place these settings underconfig.integrations.openmetrics. In a Collector configuration file,
place them under cxdot.integrations.openmetrics.
Optional settings
-
enabledType:boolean. Optional. Default:true. Whether to run the OpenMetrics integration. If true, the Collector collects metrics from configured or discovered endpoints. If false, the Collector doesn’t run this integration. -
scrapeType:object. Optional. Settings for collecting metrics from OpenMetrics endpoints. -
scrape.enabledType:boolean. Optional. Default:true. Whether to collect OpenMetrics metrics. If true, the Collector collects metrics from configured or discovered endpoints. If false, it doesn’t collect OpenMetrics metrics. -
scrape.endpointsType:array of object. Optional. Static OpenMetrics endpoints. Each entry identifies one target and the metrics to collect from it. When this list isn’t empty, the integration collects from exactly these endpoints instead of endpoints found through discovery annotations. -
scrape.endpoints[].endpointType:string. Required. Full URL of the metrics endpoint, for examplehttps://app.svc:9090/metrics?format=text. Metric collection uses the path and query exactly as given. -
scrape.endpoints[].namespaceType:string. Optional. A name recorded on every time series from this endpoint, as thecxdot.openmetrics.namespaceresource attribute. Metric names stay exactly as the target exposes them, so this groups an endpoint’s telemetry without changing what its metrics are called. -
scrape.endpoints[].serviceType:string. Optional. Overrides theservice.nameresource attribute for this endpoint. -
scrape.endpoints[].metricsType:object. Required. Which metrics to collect, and how to reshape them. -
scrape.endpoints[].metrics.includeType:array of string. Required. Minimum items:1. Target metrics to collect. The integration always collects its health and collection status metrics. Each entry is a regular expression matched against the metric name. Type suffixes are not part of the name: a counter exposed asrequests_totalis collected asrequests, because OpenMetrics calls that familyrequestsand carries the type separately. To collect every target metric, use".*". -
scrape.endpoints[].metrics.excludeType:array of string. Optional. Target metrics to exclude from the metrics selected byinclude. Each entry is a regular expression matched against the metric name. Health and collection status metrics aren’t excluded. -
scrape.endpoints[].metrics.renameType:object. Optional. Metric renames, as{old: new}. Only an exact name can be renamed. The integration ignores a rename whose key is a regular expression. -
scrape.endpoints[].metrics.typesType:object. Optional. Metric type overrides, as{name: counter}. Keys are exact metric names or regular expressions. Values arecounterorgauge. A metric without a declared type is otherwise read as a gauge. -
scrape.endpoints[].metrics.strip_prefixType:string. Optional. A prefix removed from every metric name during collection. Removed first, so every other option here,includeincluded, refers to the shortened name. -
scrape.endpoints[].labelsType:object. Optional. Settings for renaming labels and dropping samples. -
scrape.endpoints[].labels.renameType:object. Optional. Label renames, as{old: new}. A rename changes the label name without removing the label, so distinct time series remain distinct. Renaming a label to a name the time series already has overwrites that label’s value. -
scrape.endpoints[].labels.sample_drop_rulesType:object. Optional. Drops a whole sample when one of its labels matches. Each key is a label name. The value is a list of regular expressions matched against the label’s value. To drop every sample the label appears on with a non-empty value, use".+". -
scrape.endpoints[].tagsType:array of string. Optional. Extra resource attributes inkey:valueformat to add to every time series from this endpoint. The integration ignores an entry without a colon. -
scrape.endpoints[].intervalType:duration. Optional. Default:15s. Time between metric collections from this endpoint. -
scrape.endpoints[].timeoutType:duration. Optional. Default:10s. Maximum time to wait for each metric collection. -
scrape.endpoints[].max_samplesType:integer. Optional. Maximum number of samples accepted from one metric collection. An unset value means no limit. A collection that exceeds the limit fails and reportsupas0instead of returning an incomplete set of samples. -
scrape.endpoints[].follow_redirectsType:boolean. Optional. Default:true. Whether to follow HTTP redirects. If true, the Collector follows redirects. If false, a redirect causes the metric collection to fail.

