Dashboard Terminology

  • Market: Pair of assets that are traded against each other. For example, the BTC/USD market is the market where Bitcoin is traded against the US Dollar.
  • Price Feed: A price feed is indexed by a price provider and a market. For example, the Coinbase API provides a price feed for the BTC/USD market.
  • Price Provider: Service that provides price data for a given market. For example, the Coinbase API is a price provider for the Coinbase markets.
  • Market Map Provider: Service that supplies the markets that the side-car needs to fetch data for.

Exposed Metrics

Connect also exposes metrics on the /metrics endpoint on port 8002 by default. These metrics are in the Prometheus format and can be scraped by any monitoring system that supports Prometheus format.

Health Metrics

The following health metrics are emitted in Connect.

  • side_car_health_check_system_updates_total: Counter that increments every time the sidecar updates its internal state. This is a good indicator of the sidecar’s overall health.
  • side_car_health_check_ticker_updates_total: Counter that increments every time the side-car updates the price of a given market. This is a good indicator of the overall health of a given market.
  • side_car_health_check_provider_updates_total: Counter that increments every time the side-car utilizes a given providers market data. This is a good indicator of the health of a given provider. Note that providers may not be responsible for every market. However, the sidecar correctly tracks the number of expected updates for each provider. This metric can be quite noisy, so consider omitting it from dashboards if that becomes an issue in your Grafana instance.

Price Metrics

Connect exposes various metrics related to market prices. These metrics are useful for monitoring the health of the price feeds and the aggregation process. The rate of updates for these metrics is likely going to be much greater than the health metrics. This is expected as we poll the providers much more frequently than we update all prices. As such, the metrics below are not expected to be updated at the same rate as the health metrics. However, they are greatly useful to quickly identify issues with the price feeds.

  • side_car_provider_price: The last recorded price for a given price feed.
  • side_car_provider_last_updated_id: The last UNIX timestamp for a given price feed.

Aggregated Price Metrics

  • side_car_aggregated_price: The aggregated price for a given market. This price is the result of a median aggregation of all available price feeds for a given market. This is the price clients will see when querying the side-car.

HTTP Metrics

Connect exposes various metrics related to HTTP requests made by the sidecar - including the number of requests, the response time, and the status code. These metrics can be used to monitor the health of the sidecar’s HTTP endpoints.

  • side_car_api_http_status_code: The status codes of the HTTP response made by the side-car.
  • side_car_api_response_latency_bucket: The response latency of the HTTP requests made by the side-car.

WebSocket Metrics

Connect exposes various metrics related to WebSocket connections made by the sidecar. These metrics can be used to monitor the health of the sidecar’s WebSocket connections.

  • side_car_web_socket_connection_status: This includes various metrics related to the WebSocket connections made by the side-car.
  • side_car_web_socket_data_handler_status: This includes various metrics related to whether WebSocket messages are being correctly handled by the side-car.
  • side_car_web_socket_response_time_bucket: This includes the response time of the WebSocket messages received by the side-car.