Skip to main content
Version: v1.40.0

👀 Observability

Overview

Observability is crucial to know how your applications are working. And this is probably something you want to have for your feature flag solution as well. This is why GO Feature Flag relay-proxy offers out of the box some ways of monitor what is happening.

Logging

GO Feature Flag relay proxy is using Zap as the logging library.

By default, the relay proxy is logging to the standard output with a JSON format in level INFO.

You can change the log level by setting the logLevel in your configuration file and you can choose the log format by setting the logFormat options.

goff-proxy.yaml
#...
logLevel: ERROR
logFormat: json
#...
Field nameMandatoryTypeDefaultDescription
logLevelstringINFOThe log level to use for the relay proxy.
Available values are ERROR, WARN, INFO, DEBUG.
logFormatstringjson

The format to use for structured logs from the relay proxy.
Valid values are json and logfmt.

  • json: Will output the logs in JSON format (default).
  • logfmt: Will output the log as text in the console.

Tracing

The relay proxy will attempt to send traces to an OpenTelemetry collector or compatible agent if an OpenTelemetry exporter endpoint is configured.

To set the endpoint, set the OTEL_EXPORTER_OTLP_ENDPOINT environment variable or set otel.exporter.otlp.endpoint in the configuration file.

export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

See the OpenTelemetry documentation for more information.

All your requests will be traced and sent to the collector with the service name go-feature-flag.

note

If you want to try the OpenTelemetry integration locally, follow this example to set up Jaeger and see your traces.


Monitoring

The relay proxy offers some endpoints for you to be able to see how it behaves.

/health

Making a GET request to the URL path /health will tell you if the relay proxy is ready to serve traffic.

This is useful especially for loadbalancer to know that they can send traffic to the service.

/info

Making a GET request to the URL path /info will give you information about the actual state of the relay proxy.

/metrics

This endpoint is providing metrics about the relay proxy in the prometheus format.


Use specific port for the monitoring

You can configure a different port for the monitoring endpoints.
This is useful if you want to expose the monitoring endpoints on a different port than the main service.

goff-proxy.yaml
# ...
monitoringPort: 1032 # only the monitoring endpoints will be exposed on this port
# ...
note

By default the monitoring endpoints are exposed on the same port as the main service.