Telemetry overview
How Shuttle Telemetry integrations work
Under the hood, Shuttle runs an OpenTelemetry (OTel) collector alongside your service that, once configured, sends project telemetry like vCPU and RAM usage as well as any custom metrics you define to a supported third-party integration of your choice.
What’s included?
Community Tier - Export essential system metrics
- CPU usage
- Memory usage
- Network I/O
- Disk I/O
Pro & Growth Tiers - Export everything
- All system metrics
- All application metrics
- All application logs
- No export limits
How to get started?
Check out the tutorials for each supported telemetry service:
We plan to expand the list of supported third party services. Let us know you thoughts and suggestions on GitHub.
Guide: Add custom metrics in tracing events
To use custom metrics in tracing, start by adding the tracing dependency if you haven’t yet.
Then, all you need to do is add some tracing events with fields to the functions you’re using, like so:
Doing this will send an info
level log to stdout and the OTel exporter, saying Hello world from OTel!
.
The log object produced will then have the custom attribute set. An example is provided below.
The runtime’s OTel exporter uses tracing-opentelemetry
under the hood, which automatically handles three metric types for you: monotonic counters, counters and histograms.
You can find more about this on the tracing-opentelemetry
docs.
Default telemetry properties
Traces
This is an example of what a JSON object for a tracing event looks like:
Platform telemetry
Below is a list of container metrics that Shuttle sends by default over the OpenTelemetry export.
Attribute name | Description |
---|---|
cpu_cores | CPU cores available |
cpu_onlines | Number of online/active CPUs |
cpu_reserved | Reserved CPU resources (if any) |
cpu_usage_kernelmode | CPU time spent in kernel mode (nanos) |
cpu_usage_system | System-wide CPU usage (nanos) |
cpu_usage_total | Total CPU time usage (nanos) |
cpu_usage_usermode | CPU time spent in user mode (nanos) |
cpu_usage_vcpu | vCPU usage |
cpu_utilized | Percentage of CPU utilized |
memory_reserved | Memory reserved (bytes) |
memory_usage | Memory used (bytes) |
memory_usage_limit | Memory limit (bytes) |
memory_usage_max | The max amount of memory used by your application (bytes) |
memory_utilized | Memory being utilised (bytes) |
network_io_usage_rx_bytes | Network ingress (bytes) |
network_io_usage_rx_packets | Network ingress packet count |
network_io_usage_rx_dropped | Network ingress dropped packet count |
network_io_usage_rx_errors | Network ingress errored packet count |
network_io_usage_tx_bytes | Network egress (bytes) |
network_io_usage_tx_packets | Network egress packet count |
network_io_usage_tx_dropped | Network egress dropped packet count |
network_io_usage_tx_errors | Network egress errored packet count |
network_rate_rx | Network ingress rate (bytes/s) |
network_rate_tx | Network egress rate (bytes/s) |
storage_read_bytes | Bytes read from disk |
storage_write_bytes | Bytes written to disk |
Was this page helpful?