Observability
This document describes how to configure Flipt’s observability mechanisms including metrics, logging, and tracing.
Metrics
Prometheus
Flipt exposes Prometheus metrics by default at the /metrics
HTTP endpoint. To see which metrics are currently supported, point your browser
to FLIPT_HOST/metrics
(ex: localhost:8080/metrics
).
You should see a bunch of metrics being recorded such as:
An example showing how to set up Flipt with Prometheus can be found in the GitHub repository.
You can disable the Prometheus metrics collection by setting the
metrics.enabled
configuration option to false
.
OTLP
Flipt supports sending metrics to an OTLP collector.
OTLP supports additional configuration such as specifying the protocol to use (gRPC or HTTP) as well as providing custom headers to send with the request.
Custom headers can be used to provide authentication information to the collector which may be required if you are using a hosted collector such as NewRelic, DataDog, or Honeycomb.
These can be configured via the metrics.otlp
configuration section.
Dashboards
We provide a set of Grafana dashboards that you can use to visualize the metrics collected by Flipt, including both server health and flag evaluation metrics.
You can find the dashboards in our grafana-dashboards repository.
Logging
Flipt writes logs to STDOUT in two formats:
- JSON
- Console
The format can be configured via the log.encoding
configuration option.
For production deployments, we recommend using the JSON format as it’s easier to parse and ingest into log aggregation systems such as Elasticsearch, Splunk, Loki, or Datadog.
We’ve prepared an example showing how to set up Flipt with Grafana Loki and Promtail to ingest and query logs.
JSON
Console
More information about the available configuration options can be found in the Logging configuration section.
Tracing
Flipt supports distributed tracing via the OpenTelemetry project.
Currently, we support the following tracing backends:
Enable tracing via the values described in the Tracing configuration and point Flipt to your configured collector to record spans.
Examples showing how to set up Flipt with each of the supported tracing backends can be found in the main GitHub repository .
OTLP
OTLP supports additional configuration such as specifying the protocol to use (gRPC or HTTP) as well as providing custom headers to send with the request.
Custom headers can be used to provide authentication information to the collector which may be required if you are using a hosted collector such as NewRelic, Datadog, or Honeycomb.
These can be configured via the tracing.otlp
configuration section.
Environment Variables
Flipt supports OTLP specific resource environment variables that are part of the OTLP spec.
The following environment variables are supported:
OTEL_SERVICE_NAME
- Sets the value of theservice.name
resource attribute (default:flipt
)OTEL_RESOURCE_ATTRIBUTES
- Key-value pairs to be used as resource attributes.
Was this page helpful?