Ambassador API Gateway

Supported OS Linux Windows Mac OS

Overview

Get metrics from Ambassador in real time to:

  • Visualize the performance of your microservices

  • Understand the impact of new versions of your services as you use Ambassador to do a canary rollout

snapshot

Setup

Enable DogStatsD on your Agent Daemonset, and set the following environment variable on your Ambassador pod:

name: STATSD_HOST
valueFrom:
  fieldRef:    
    fieldPath: status.hostIP

With this setup, StatsD metrics are sent to the IP of the host, which redirects traffic to the Agent port 8125.

See Envoy statistics with StatsD for more information.

You can also send tracing data from Ambassador to Datadog APM. See Distributed Tracing with Datadog for more information.

Data Collected

Metrics

envoy.listener.downstream_cx_total
(count)
Total connections
Shown as connection
envoy.listener.downstream_cx_destroy
(count)
Total destroyed connections
Shown as connection
envoy.listener.downstream_cx_active
(gauge)
Total active connections
Shown as connection
envoy.listener.downstream_cx_length_ms
(gauge)
Connection length milliseconds
Shown as millisecond
envoy.listener_manager.listener_added
(count)
Total listeners added (either via static config or LDS)
Shown as host
envoy.listener_manager.listener_modified
(count)
Total listeners modified (via LDS)
Shown as host
envoy.listener_manager.listener_removed
(count)
Total listeners removed (via LDS)
Shown as host
envoy.listener_manager.listener_create_success
(count)
Total listener objects successfully added to workers
Shown as host
envoy.listener_manager.listener_create_failure
(count)
Total failed listener object additions to workers
Shown as host
envoy.listener_manager.total_listeners_warming
(gauge)
Number of currently warming listeners
Shown as host
envoy.listener_manager.total_listeners_active
(gauge)
Number of currently active listeners
Shown as host
envoy.listener_manager.total_listeners_draining
(gauge)
Number of currently draining listeners
Shown as host
envoy.http.downstream_cx_total
(count)
Total connections
Shown as connection
envoy.http.downstream_cx_ssl_total
(count)
Total TLS connections
Shown as connection
envoy.http.downstream_cx_http1_total
(count)
Total HTTP/1.1 connections
Shown as connection
envoy.http.downstream_cx_websocket_total
(count)
Total WebSocket connections
Shown as connection
envoy.http.downstream_cx_http2_total
(count)
Total HTTP/2 connections
Shown as connection
envoy.http.downstream_cx_destroy
(count)
Total connections destroyed
Shown as connection
envoy.http.downstream_cx_destroy_remote
(count)
Total connections destroyed due to remote close
Shown as connection
envoy.http.downstream_cx_destroy_local
(count)
Total connections destroyed due to local close
Shown as connection
envoy.http.downstream_cx_destroy_active_rq
(count)
Total connections destroyed with active requests
Shown as connection
envoy.http.downstream_cx_destroy_local_active_rq
(count)
Total connections destroyed locally with active requests
Shown as connection
envoy.http.downstream_cx_destroy_remote_active_rq
(count)
Total connections destroyed remotely with active requests
Shown as connection
envoy.http.downstream_cx_active
(gauge)
Total active connections
Shown as connection
envoy.http.downstream_cx_ssl_active
(gauge)
Total active TLS connections
Shown as connection
envoy.http.downstream_cx_http1_active
(gauge)
Total active HTTP/1.1 connections
Shown as connection
envoy.http.downstream_cx_websocket_active
(gauge)
Total active WebSocket connections
Shown as connection
envoy.http.downstream_cx_http2_active
(gauge)
Total active HTTP/2 connections
Shown as connection
envoy.http.downstream_cx_protocol_error
(count)
Total protocol errors
Shown as error
envoy.http.downstream_cx_length_ms
(gauge)
Connection length milliseconds
Shown as millisecond
envoy.http.downstream_cx_rx_bytes_total
(count)
Total bytes received
Shown as byte
envoy.http.downstream_cx_rx_bytes_buffered
(gauge)
Total received bytes currently buffered
Shown as byte
envoy.http.downstream_cx_tx_bytes_total
(count)
Total bytes sent
Shown as byte
envoy.http.downstream_cx_tx_bytes_buffered
(gauge)
Total sent bytes currently buffered
Shown as byte
envoy.http.downstream_cx_drain_close
(count)
Total connections closed due to draining
Shown as connection
envoy.http.downstream_cx_idle_timeout
(count)
Total connections closed due to idle timeout
Shown as connection
envoy.http.downstream_flow_control_paused_reading_total
(count)
Total number of times reads were disabled due to flow control
Shown as occurrence
envoy.http.downstream_flow_control_resumed_reading_total
(count)
Total number of times reads were enabled on the connection due to flow control
Shown as occurrence
envoy.http.downstream_rq_total
(count)
Total requests
Shown as request
envoy.http.downstream_rq_http1_total
(count)
Total HTTP/1.1 requests
Shown as request
envoy.http.downstream_rq_http2_total
(count)
Total HTTP/2 requests
Shown as request
envoy.http.downstream_rq_active
(gauge)
Total active requests
Shown as request
envoy.http.downstream_rq_response_before_rq_complete
(count)
Total responses sent before the request was complete
Shown as response
envoy.http.downstream_rq_rx_reset
(count)
Total request resets received
Shown as request
envoy.http.downstream_rq_tx_reset
(count)
Total request resets sent
Shown as request
envoy.http.downstream_rq_non_relative_path
(count)
Total requests with a non-relative HTTP path
Shown as request
envoy.http.downstream_rq_too_large
(count)
Total requests resulting in a 413 due to buffering an overly large body
Shown as request
envoy.http.downstream_rq_1xx
(count)
Total 1xx responses
Shown as response
envoy.http.downstream_rq_2xx
(count)
Total 2xx responses
Shown as response
envoy.http.downstream_rq_3xx
(count)
Total 3xx responses
Shown as response
envoy.http.downstream_rq_4xx
(count)
Total 4xx responses
Shown as response
envoy.http.downstream_rq_5xx
(count)
Total 5xx responses
Shown as response
envoy.http.downstream_rq_ws_on_non_ws_route
(count)
Total WebSocket upgrade requests rejected by non WebSocket routes
Shown as request
envoy.http.downstream_rq_time
(gauge)
Request time milliseconds
Shown as millisecond
envoy.cluster_manager.cluster_added
(count)
Total clusters added (either via static config or CDS)
Shown as node
envoy.cluster_manager.cluster_modified
(count)
Total clusters modified (via CDS)
Shown as node
envoy.cluster_manager.cluster_removed
(count)
Total clusters removed (via CDS)
Shown as node
envoy.cluster.upstream_cx_total
(count)
Total connections
Shown as connection
envoy.cluster.upstream_cx_active
(gauge)
Total active connections
Shown as connection
envoy.cluster.upstream_cx_http1_total
(count)
Total HTTP/1.1 connections
Shown as connection
envoy.cluster.upstream_cx_http2_total
(count)
Total HTTP/2 connections
Shown as connection
envoy.cluster.upstream_cx_connect_ms
(gauge)
Connection establishment milliseconds
Shown as millisecond
envoy.cluster.upstream_cx_length_ms
(gauge)
Connection length milliseconds
Shown as millisecond
envoy.cluster.upstream_cx_rx_bytes_total
(count)
Total received connection bytes
Shown as byte
envoy.cluster.upstream_cx_rx_bytes_buffered
(gauge)
Received connection bytes currently buffered
Shown as byte
envoy.cluster.upstream_cx_tx_bytes_total
(count)
Total sent connection bytes
Shown as byte
envoy.cluster.upstream_cx_tx_bytes_buffered
(gauge)
Send connection bytes currently buffered
Shown as byte
envoy.cluster.upstream_rq_total
(count)
Total requests
Shown as request
envoy.cluster.upstream_rq_active
(gauge)
Total active requests
Shown as request
envoy.cluster.upstream_rq_pending_total
(count)
Total requests pending a connection pool connection
Shown as request
envoy.cluster.upstream_rq_pending_active
(gauge)
Total active requests pending a connection pool connection
Shown as request
envoy.cluster.membership_change
(count)
Total cluster membership changes
Shown as event
envoy.cluster.membership_healthy
(gauge)
Current cluster healthy total (inclusive of both health checking and outlier detection)
Shown as node
envoy.cluster.membership_total
(gauge)
Current cluster membership total
Shown as node
envoy.cluster.config_reload
(count)
Total API fetches that resulted in a config reload due to a different config
Shown as request
envoy.cluster.update_attempt
(count)
Total cluster membership update attempts
Shown as occurrence
envoy.cluster.update_success
(count)
Total cluster membership update successes
Shown as success
envoy.cluster.update_failure
(count)
Total cluster membership update failures
Shown as error
envoy.cluster.version
(gauge)
Hash of the contents from the last successful API fetch
Shown as item
envoy.cluster.max_host_weight
(gauge)
Maximum weight of any host in the cluster
Shown as item

Events

The Ambassador check does not include any events.

Service Checks

The Ambassador check does not include any service checks.

Troubleshooting

Need help? Contact Datadog support.

PREVIEWING: may/unit-testing