Skip to main content
The OpenMetrics integration requires CXDOT Collector 1.4.0 or greater. OpenMetrics defines a standard format for exposing metrics. Use the OpenMetrics integration with the Chronosphere XDOT Collector to collect metrics from OpenMetrics and Prometheus endpoints running in your environment.

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:
  1. For discovered endpoints, provide the full endpoint URL and the metrics to collect through autodiscovery annotations. For more information, see autodiscovery.
  2. Optional: Configure static targets. For example, add the following to the values.yaml for your Helm chart:

Validate

To validate the OpenMetrics integration, follow these steps:
  1. In the Live Telemetry Analyzer, filter for cxdot.integration.name=openmetrics. Confirm that the selected metric names appear.
  2. 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.
For more information about diagnosing a failing integration, see Troubleshooting.

Configuration reference

Configure one OpenMetrics integration instance with the following settings. In Helm values, place these settings under config.integrations.openmetrics. In a Collector configuration file, place them under cxdot.integrations.openmetrics.

Optional settings

  • enabled Type: 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.
  • scrape Type: object. Optional. Settings for collecting metrics from OpenMetrics endpoints.
  • scrape.enabled Type: 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.endpoints Type: 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[].endpoint Type: string. Required. Full URL of the metrics endpoint, for example https://app.svc:9090/metrics?format=text. Metric collection uses the path and query exactly as given.
  • scrape.endpoints[].namespace Type: string. Optional. A name recorded on every time series from this endpoint, as the cxdot.openmetrics.namespace resource 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[].service Type: string. Optional. Overrides the service.name resource attribute for this endpoint.
  • scrape.endpoints[].metrics Type: object. Required. Which metrics to collect, and how to reshape them.
  • scrape.endpoints[].metrics.include Type: 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 as requests_total is collected as requests, because OpenMetrics calls that family requests and carries the type separately. To collect every target metric, use ".*".
  • scrape.endpoints[].metrics.exclude Type: array of string. Optional. Target metrics to exclude from the metrics selected by include. Each entry is a regular expression matched against the metric name. Health and collection status metrics aren’t excluded.
  • scrape.endpoints[].metrics.rename Type: 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.types Type: object. Optional. Metric type overrides, as {name: counter}. Keys are exact metric names or regular expressions. Values are counter or gauge. A metric without a declared type is otherwise read as a gauge.
  • scrape.endpoints[].metrics.strip_prefix Type: string. Optional. A prefix removed from every metric name during collection. Removed first, so every other option here, include included, refers to the shortened name.
  • scrape.endpoints[].labels Type: object. Optional. Settings for renaming labels and dropping samples.
  • scrape.endpoints[].labels.rename Type: 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_rules Type: 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[].tags Type: array of string. Optional. Extra resource attributes in key:value format to add to every time series from this endpoint. The integration ignores an entry without a colon.
  • scrape.endpoints[].interval Type: duration. Optional. Default: 15s. Time between metric collections from this endpoint.
  • scrape.endpoints[].timeout Type: duration. Optional. Default: 10s. Maximum time to wait for each metric collection.
  • scrape.endpoints[].max_samples Type: 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 reports up as 0 instead of returning an incomplete set of samples.
  • scrape.endpoints[].follow_redirects Type: 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.