Get desktop application:
View/edit binary Protocol Buffers messages
Advanced configuration for socket based inflows.
Used in: ,
How long to wait for a connection to receive data before it is shutdown for being idle. Defaults to 60s.
How much data to buffer on an incoming socket before applying back pressure. Defaults to 8KiB.
The maximum amount of time an incoming connection will be kept alive. Can be usefull to force connection rotation and fix imbalance for downstreams. Defaults to none.
Configuration for determining the downstream ID of incoming metrics.
Used in: ,
Uses the remote IP address of the incoming connection.
Uses the value found in the specified request header. If the request header is not found, falls back to remote IP address.
Whether to append the incoming metric tags to the downstream ID. When doing aggregation using Prometheus absolute counters, the aggregation processor must know all unique sources of a metric so that absolute counter deltas can be correctly calculated. If tags are removed using a mutate processor, the aggregation processor will no longer be able to determine unique sources. By appending the original tags to the incoming ID, tags can be removed and then forwarded via internode and aggregated correctly. Depending on the aggregation topology this is likely required if absolute counters are being used.
Configuration for an individual inflow.
Used in:
The routes that the inflow sends to.
Collect prometheus metrics by discovering endpoints via Kubernetes. The annotations checked are the standard Prometheus annotations such as prometheus.io/scrape, prometheus.io/path, etc.
Used in:
How often eligible Prometheus endpoints are scraped.
Whether to emit the synthetic "up" metric as per https://prometheus.io/docs/concepts/jobs_instances/. If true, for each scrape target "up" will be a gauge set to 0 or 1 depending on whether the scrape was successful. The "instance" tag will be set to the target's address. The "job" tag will not currently be set.
Based on https://prometheus.io/docs/prometheus/latest/configuration/configuration/#tls_config allow users to add cert and key files
The timeout to use on the scrape request. If not set this defaults to 15s.
Scrapes metrics from Prometheus endpoints defined on pods via associated service annotations. Resolves to all pod-local endpoints using the service annotations to infer path, port, etc.
Used in:
If any of the optionally provided matchers matches, HTTPS K8s service auth will be used against the scrape target.
An implementation of the Prometheus HTTP service discovery protocol as documented here: https://prometheus.io/docs/prometheus/latest/http_sd/
Used in:
The URL to scrape for service discovery. This should be a valid URL.
The interval to use for fetching the service discovery config. If not set default to 1 minute.
Used in: ,
Apply the following regex to each container port name to determine if it should be scraped. If the regex is a match, the container port will be scraped.
This allows extracting a scrape port from a generic annotation. Optionally it allows matching on a different annotation for inclusion versus extracting the port.
Used in:
Which annotation to use for deciding whether to scrape.
The regex to match the name against.
The annotation to use for deciding which port to scrape. This can be the same as the inclusion annotation name if desired.
Scrape metrics from endpoints discovered on the node. This will resolve to the kubelet endpoint on the local node.
Used in:
The path to the prometheus endpoint on the node.
Scrapes metrics from Prometheus endpoints defined on pods via pod annotations.
Used in:
Inclusion filters can be used to include pods to be scraped even if they do not have the standard Prometheus annotations. An inclusion filter if successful will result in a container port to be scraped.
If any of the optionally provided matchers matches, HTTPS K8s service auth will be used against the scrape target.
Optional overrides for the base Prometheus annotations used to discover scrape targets.
Used in:
If not set, defaults to "prometheus.io/scrape".
If not set, defaults to "prometheus.io/namespace".
If not set, defaults to "prometheus.io/path".
If not set, defaults to "prometheus.io/scheme".
If not set, defaults to "prometheus.io/port".
Watch a Kubernetes endpoints resource and scrape all ready endpoints remotely.
Used in:
The namespace of the Kubernetes endpoints resource to watch.
The name of the Kubernetes endpoints resource to watch.
Inclusion filters can be used to include endpoints to be scraped even if they do not have the standard Prometheus annotations. An inclusion filter if successful will result in a endpoint port to be scraped.
If any of the optionally provided matchers matches, HTTPS K8s service auth will be used against the scrape target.
Used in:
Used in: , ,
Matches if the supplied key/value pair is present in the pod's annotations.
Always matches.
Used in:
If not supplied, the value is ignored and only key presence is checked.
Configuration for the metric generator inflow.
Used in:
Which protocol to generate.
The number of tasks to spawn for generating metrics. Defaults to 16.
How many metrics to emit per flush interval. This is divided between all tasks. Defaults to 128.
How often to emit batches. Defauls to 1s.
Supports OTLP over HTTP+protobuf.
Used in:
Which address to bind to.
How to determine the downstream ID of incoming metrics. If not specified, defaults to `remote_ip`.
If true (the default), resource attributes will be included as metric tags. Scope or data point attributes with the same name will override resource attributes.
If true (the default), scope attributes will be included as metric tags. Data point attributes with the same name will override scope attributes.
The HTTP path to listen on. If not specified, defaults to `/v1/metrics`.
Configuration for the Prometheus remote write server inflow.
Used in:
Which address to bind to.
Extra configuration for parsing incoming remote write protocol.
How to determine the downstream ID of incoming metrics. If not specified, defaults to `remote_ip`.
Parser settings for incoming remote write protocol.
Used in:
https://github.com/lyft/statsrelay/ sets the Prometheus SUMMARY metric type for StatsD timer values. This is not compliant with the actual Prometheus data model.
https://github.com/lyft/statsrelay/ sets the Prometheus COUNTER metric type for StatsD delta counter values. This is not compliant with the actual Prometheus data model.
https://github.com/lyft/statsrelay/ does not dedup metric family metadata in the metadata list. If set, ignore duplicate entries and do not warn about them.
If set, metadata for histogram and summary metrics will be ignored, and those metrics will be flattened with an unknown metric type. This is useful if the sender is splitting histograms and summaries across different requests. Note that this means that these metrics cannot be aggregated or have any other operations performed on them that depend on their type.
Configuration for a TCP based inflow.
Used in:
Which address to bind to.
Which protocol is expected.
Advanced configuration for the inflow.
If true, the KubernetesBootstrapConfig will be used to watch all pods on the node. Incoming metrics will be looked up by remote IP to match the origin pod and its metadata to the metrics.
An optional amount of time that metrics will be buffered by the inflow before being further dispatched. Practically, this is useful when relying on Kubernetes informer metadata and there is no external mechanism to synchronize pods fully starting (e.g., an init container) such that there is a potential race condition between pods sending statsd metrics prior to the informer being aware of the pod's existence. Defaults to disabled. 5s is a reasonable setting in most environments where the above conditions apply. Note that counters, gauges, and timers will be aggregated to avoid unbounded memory growth of the application sends a lot of metrics.
If this is true and a pre-buffer window is set, all incoming metrics will be pre-buffered continuously. This is useful if for example applications are sending larger numbers of timers and we would like to do as little processing as possible on initial ingestion.
The size of the reservoir for timers. If not set defaults to 100.
Configuration for a UDP based inflow.
Used in:
Which address to bind to.
Which protocol is expected.
If true, the KubernetesBootstrapConfig will be used to watch all pods on the node. Incoming metrics will be looked up by remote IP to match the origin pod and its metadata to the metrics.
Configuration for UDP session pre-buffering. See above for more information. Defaults to disabled.
Used in:
An optional amount of time that metrics will be buffered by the inflow before being further dispatched. Practically, this is useful when relying on Kubernetes informer metadata and there is no external mechanism to synchronize pods fully starting (e.g., an init container) such that there is a potential race condition between pods sending statsd metrics prior to the informer being aware of the pod's existence. 5s is a reasonable setting in most environments where the above conditions apply. Note that counters, gauges, and timers will be aggregated to avoid unbounded memory growth of the application sends a lot of metrics.
Because UDP is a datagram protocol, there is no actual stream to key off of like there is for TCP. Every incoming IP is bound to a "session" which will timeout after the configured session idle timeout. This should be set as large as possible but less than any potential window for IP recycling. For example if pod IP addresses have a recycle cooldown of 30s, a reasonable setting for this might be 20s.
If this is true and a pre-buffer window is set, all incoming metrics will be pre-buffered continuously. This is useful if for example applications are sending larger numbers of timers and we would like to do as little processing as possible on initial ingestion.
The size of the reservoir for timers. If not set defaults to 100.
Configuration for a unix domain docket based inflow.
Used in:
The path to bind to.
Which protocol is expected.
Advanced configuration for the inflow.