Skip to main content

Monitoring

Monitor your Foxglove Edge Site.

Online status​

The edge controller checks in with the Foxglove API control plane periodically. Organization admins can see the site's status on the Sites settings page. A site that hasn't checked in for 10 minutes shows as "Offline".

Logs​

To configure and view the edge controller's logs, see Logging.

Prometheus​

The edge controller exposes processing statistics on a Prometheus metrics scraping endpoint at /metrics on port 6001, on all IPv4 addresses. Change the port with PROMETHEUS_PORT, or turn the endpoint off with DISABLE_PROMETHEUS=true. PROMETHEUS_METRICS_NAMESPACE and PROMETHEUS_METRICS_SUBSYSTEM add a prefix to every metric name.

For example, configure the endpoint and metric-name prefix with:

DISABLE_PROMETHEUS=false
PROMETHEUS_PORT=6001
PROMETHEUS_METRICS_NAMESPACE=
PROMETHEUS_METRICS_SUBSYSTEM=

On Kubernetes, set the prefix with edgeController.metrics.namespace and edgeController.metrics.subsystem in values.yaml. Set other variables through edgeController.env, using the quoting shown in the installation guide.

The endpoint starts after the edge controller logs site initialized. Until then, scrapes fail.

Check out the Prometheus documentation for more information.

Available metrics​

Counters and histograms count from when the edge controller started, and reset to zero when it restarts. For example, recordings_indexed counts the recordings cataloged since the edge controller last started.

  • recordings_indexed – Number of recordings cataloged
  • recordings_indexed_bytes – Size of recording data cataloged, in bytes
  • recordings_imported – Number of recordings uploaded to the Primary Site's inbox
  • recordings_imported_bytes – Size of recording data uploaded to the Primary Site's inbox, in bytes
  • recordings_deleted – Number of recordings deleted from the Edge Site
  • recordings_deletion_retained – Number of recordings marked for deletion whose file remains after a failed deletion attempt
  • recordings_retained_pending_upload – Number of recordings older than the retention period, kept because their upload hasn't succeeded
  • recordings_retained_pending_upload_bytes – Size of recordings older than the retention period, kept because their upload hasn't succeeded, in bytes
  • import_time_seconds – Histogram of upload times to the Primary Site, per recording
  • import_throughput_mbps – Histogram of upload throughput to the Primary Site, per recording, in megabits per second
  • recording_summary_read_ms – Histogram of timings for reading recording summaries from storage
  • recording_stat_ms – Histogram of timings for reading recording file metadata from storage
  • recording_index_ms – Histogram of timings for adding recordings to the catalog
  • deletion_mark_ms – Histogram of timings for marking recordings for deletion in the catalog
  • deletion_sweep_ms – Histogram of timings for each retention cleanup that removes recordings, including file removal and reporting to Foxglove
  • control_plane_post_recordings_ms – Histogram of timings for reporting new recordings to Foxglove
  • control_plane_patch_recordings_imported_ms – Histogram of timings for reporting upload results to Foxglove
  • control_plane_patch_recordings_deleted_ms – Histogram of timings for reporting deleted recordings to Foxglove
  • pending_import_request_poll_ms – Histogram of timings for checking Foxglove for import requests

recordings_imported counts a recording as soon as its upload finishes, before the Primary Site imports it, so it doesn't show whether the import succeeded.

The following metrics describe the catalog. The edge controller updates them at startup and then hourly:

  • recordings_gigabytes – Total size of cataloged recordings, in gigabytes (1024³ bytes)
  • database_recordings_count – Number of recordings in the catalog
  • database_topics_count – Number of unique topics and schemas in the catalog
  • database_recording_reports_count – Number of recording reports in the catalog
  • database_size_bytes – Size of the catalog database, in bytes

To see the available metrics on Kubernetes, forward the metrics port to your machine:

kubectl port-forward -n foxglove service/edge-controller 6001:6001

Then request the metrics endpoint:

curl http://localhost:6001/metrics