The Service Map for APM is here!

Istio

Agent Check Agent Check

Supported OS: Linux Mac OS Windows

Overview

Use the Datadog Agent to monitor how well Istio is performing.

  • Collect metrics on what apps are making what kinds of requests
  • Look at how applications are using bandwidth
  • Understand istio’s resource consumption

Setup

Installation

Istio is included in the Datadog Agent. So, just install the Agent on your istio servers or in your cluster and point it at Istio.

Configuration

Preparing Istio

Istio needs to have the built in prometheus adapter enabled and the ports exposed to the agent.

Connect the Agent

Edit the istio.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory, to connect it to Istio. See the sample istio.d/conf.yaml for all available configuration options:

init_config:

instances:
  - istio_mesh_endpoint: http://istio-telemetry.istio-system:42422/metrics
    mixer_endpoint: http://istio-telemetry.istio-system:9093/metrics
    send_histograms_buckets: true

Both endpoints need to be connected to the check for it to work. To learn more about the prometheus adapter, you can read the istio documentation.

Validation

Run the Agent’s info subcommand and look for istio under the Checks section.

Data Collected

Metrics

istio.mesh.request.count
(gauge)
The number of requests
shown as request
istio.mesh.request.duration.count
(gauge)
count of request durations
shown as millisecond
istio.mesh.request.duration.sum
(gauge)
sum of request durations
shown as millisecond
istio.mesh.request.size.count
(gauge)
count of request sizes
shown as request
istio.mesh.request.size.sum
(gauge)
sum of request sizes
shown as request
istio.mesh.response.size.count
(gauge)
count of response sizes
shown as response
istio.mesh.response.size.sum
(gauge)
sum of response sizes
shown as response
istio.mixer.adapter.dispatch_count
(gauge)
Total number of adapter dispatches handled by Mixer
shown as operation
istio.mixer.adapter.dispatch_duration.count
(gauge)
Count of durations for adapter dispatches handled by Mixer
shown as operation
istio.mixer.adapter.dispatch_duration.sum
(gauge)
Sum of durations for adapter dispatches handled by Mixer
shown as operation
istio.mixer.adapter.old_dispatch_count
(gauge)
Total number of adapter dispatches handled by Mixer.
shown as operation
istio.mixer.adapter.old_dispatch_duration.count
(gauge)
Count of times for adapter dispatches handled by Mixer.
shown as operation
istio.mixer.adapter.old_dispatch_duration.sum
(gauge)
Sum of times for adapter dispatches handled by Mixer.
shown as operation
istio.mixer.config.resolve_actions.count
(gauge)
Count of actions resolved by Mixer.
shown as operation
istio.mixer.config.resolve_actions.sum
(gauge)
Sum of actions resolved by Mixer.
shown as operation
istio.mixer.config.resolve_count
(gauge)
Number of config resolves handled by mixer
shown as operation
istio.mixer.config.resolve_duration.count
(gauge)
Seconds per config resolve
shown as second
istio.mixer.config.resolve_duration.sum
(gauge)
Sum of times for config resolves handled by Mixer.
shown as second
istio.mixer.config.resolve_rules.count
(gauge)
Number of rules resolved by mixer
shown as item
istio.mixer.config.resolve_rules.sum
(gauge)
Sum of rules resolved by Mixer.
shown as item
istio.mixer.go.gc_duration_seconds.count
(gauge)
Count of the GC invocation durations.
shown as second
istio.mixer.go.gc_duration_seconds.quantile
(gauge)
Quantile of the GC invocation durations.
shown as second
istio.mixer.go.gc_duration_seconds.sum
(gauge)
Sum of the GC invocation durations.
shown as second
istio.mixer.go.goroutines
(gauge)
Number of goroutines that currently exist.
shown as thread
istio.mixer.go.info
(gauge)
Information about the Go environment.
istio.mixer.go.memstats.alloc_bytes
(gauge)
Number of bytes allocated and still in use.
shown as byte
istio.mixer.go.memstats.alloc_bytes_total
(gauge)
Total number of bytes allocated even if freed.
shown as byte
istio.mixer.go.memstats.buck_hash_sys_bytes
(gauge)
Number of bytes used by the profiling bucket hash table.
shown as byte
istio.mixer.go.memstats.frees_total
(gauge)
Total number of frees.
istio.mixer.go.memstats.gc_cpu_fraction
(gauge)
CPU taken up by GC
shown as percent
istio.mixer.go.memstats.gc_sys_bytes
(gauge)
Number of bytes used for garbage collection system metadata.
shown as byte
istio.mixer.go.memstats.heap_alloc_bytes
(gauge)
Bytes allocated to the heap
shown as byte
istio.mixer.go.memstats.heap_idle_bytes
(gauge)
Number of idle bytes in the heap
shown as byte
istio.mixer.go.memstats.heap_inuse_bytes
(gauge)
Number of Bytes in the heap
shown as byte
istio.mixer.go.memstats.heap_objects
(gauge)
Number of objects in the heap
shown as object
istio.mixer.go.memstats.heap_released_bytes
(gauge)
Number of bytes released to the system in the last gc
shown as byte
istio.mixer.go.memstats.heap_sys_bytes
(gauge)
Number of bytes used by the heap
shown as byte
istio.mixer.go.memstats.last_gc_time_seconds
(gauge)
Length of last GC
shown as second
istio.mixer.go.memstats.lookups_total
(gauge)
Number of lookups
shown as operation
istio.mixer.go.memstats.mallocs_total
(gauge)
Number of mallocs
shown as operation
istio.mixer.go.memstats.mcache_inuse_bytes
(gauge)
Number of bytes in use by mcache structures.
shown as byte
istio.mixer.go.memstats.mcache_sys_bytes
(gauge)
Number of bytes used for mcache structures obtained from system.
shown as byte
istio.mixer.go.memstats.mspan_inuse_bytes
(gauge)
Number of bytes in use by mspan structures.
shown as byte
istio.mixer.go.memstats.mspan_sys_bytes
(gauge)
Number of bytes used for mspan structures obtained from system.
shown as byte
istio.mixer.go.memstats.next_gc_bytes
(gauge)
Number of heap bytes when next garbage collection will take place
shown as byte
istio.mixer.go.memstats.other_sys_bytes
(gauge)
Number of bytes used for other system allocations
shown as byte
istio.mixer.go.memstats.stack_inuse_bytes
(gauge)
Number of bytes in use by the stack allocator
shown as byte
istio.mixer.go.memstats.stack_sys_bytes
(gauge)
Number of bytes obtained from system for stack allocator
shown as byte
istio.mixer.go.memstats.sys_bytes
(gauge)
Number of bytes obtained from system
shown as byte
istio.mixer.go.threads
(gauge)
Number of OS threads created.
shown as thread
istio.mixer.grpc.server.handled_total
(gauge)
Total number of fully handled requests, with responses
shown as request
istio.mixer.grpc.server.handling_seconds.count
(gauge)
Count of response latency (seconds) of gRPC that had been application-level handled by the server.
shown as second
istio.mixer.grpc.server.handling_seconds.sum
(gauge)
Sum of response latency (seconds) of gRPC that had been application-level handled by the server.
shown as second
istio.mixer.grpc.server.msg_received_total
(gauge)
Total number of RPC stream messages received on the server.
shown as message
istio.mixer.grpc.server.msg_sent_total
(gauge)
Total number of messages sent
shown as message
istio.mixer.grpc.server.started_total
(gauge)
Total number of RPCs started on the server.
istio.mixer.process.cpu_seconds_total
(gauge)
Total user and system CPU time spent in seconds.
shown as second
istio.mixer.process.max_fds
(gauge)
Maximum number of open file descriptors.
shown as file
istio.mixer.process.open_fds
(gauge)
Number of open file descriptors.
shown as file
istio.mixer.process.resident_memory_bytes
(gauge)
Resident memory size in bytes.
shown as byte
istio.mixer.process.start_time_seconds
(gauge)
Start time of the process since unix epoch in seconds.
shown as second
istio.mixer.process.virtual_memory_bytes
(gauge)
Virtual memory size in bytes.
shown as byte

Events

The Istio check does not include any events at this time.

Service Checks

The Istio check does not include any service checks at this time.

Troubleshooting

Need help? Contact Datadog Support.


Mistake in the docs? Feel free to contribute!