---
title: "Reads the telemetry of the server"
method: GET
path: "/telemetry/"
tags: ["Telemetry"]
---

# Reads the telemetry of the server

`GET /telemetry/`

## Request

- Base URL: `https://genhttp.dev/api/v1`
- URL: `https://genhttp.dev/api/v1/telemetry/`
- Auth: none declared. Required headers: `X-Admin-Token`

## Query parameters

- `minutes` integer
- `days` integer

## Headers

- `X-Admin-Token` string, required

## Response `200`

What is running, what it did, and the readings taken while it did

- TelemetryResponse: The state of the server, and the readings taken while it ran.
  - `Server` ServerDescription: What is running, and on what.
    - `Engine` string: The engine serving the requests: `ioxide` or `kestrel`
    - `Version` string: The version of GenHTTP
    - `Runtime` string: The .NET runtime
    - `Platform` string: The platform the runtime runs on: `linux-x64`, say
    - `ServerGarbageCollection` boolean: Whether the server garbage collector is used
    - `Processors` integer: How many processors the process may use
    - `Started` string, date-time: When the server came up
    - `UptimeSeconds` integer: How long it has been up, in seconds
  - `Traffic` TrafficDescription: What the server has answered since it came up.
    - `Requests` integer: Requests answered
    - `Failed` integer: Of those, answered with a server error
    - `Upgrades` integer: Websocket upgrades
    - `OpenSockets` integer: Connections open right now
  - `Platform` PlatformDescription: What the platform holds.
    - `Lambdas` integer: Lambdas there are
    - `Deployed` integer: Of those, online
    - `Versions` integer: Versions kept, of all lambdas
  - `Latest` TelemetrySample: One reading of the server process. The breakdown of the resident memory and the descriptors are read from `/proc` on Linux, and are zero elsewhere.
    - `Taken` string, date-time: When it was taken
    - `ManagedBytes` integer: What the managed heap holds
    - `HeapCommittedBytes` integer: What the managed heap has committed
    - `HeapFragmentedBytes` integer: Of that, what lies free between objects
    - `WorkingSetBytes` integer: The working set of the process
    - `PrivateBytes` integer: The private memory of the process
    - `ResidentBytes` integer: Everything the process has in physical memory
    - `AnonymousBytes` integer: Of that, anonymous memory: heaps and stacks
    - `JitBytes` integer: Of that, code the JIT compiled
    - `AssemblyBytes` integer: Of that, assemblies mapped from disk
    - `OtherFileBytes` integer: Of that, other files mapped from disk
    - `SwapBytes` integer: What was swapped out
    - `Gen0Collections` integer: Generation 0 collections since the start
    - `Gen1Collections` integer: Generation 1 collections since the start
    - `Gen2Collections` integer: Generation 2 collections since the start
    - `AllocatedBytes` integer: Everything allocated since the start
    - `PausePercentage` number, double: The share of time spent paused for collections, in percent
    - `CpuPercentage` number, double: The share of every core the process used since the previous reading, in percent
    - `Threads` integer: Threads of the process
    - `Requests` integer: Requests answered since the previous reading
    - `Failed` integer: Of those, answered with a server error
    - `Upgrades` integer: Websocket upgrades since the previous reading
    - `InFlight` integer: Requests being answered as it was taken
    - `OpenSockets` integer: Open connections as it was taken
    - `AverageMillis` number, double: The mean time to answer since the previous reading, in milliseconds
    - `OpenConnections` integer: Connections established as it was taken
    - `AcceptedConnections` integer: Connections accepted since the start
    - `Connections` integer: Connections accepted since the previous reading
    - `FileDescriptors` integer: File descriptors the process holds
    - `SocketDescriptors` integer: Of those, sockets
    - `RingDescriptors` integer: Of those, io_uring rings
  - `IntervalSeconds` integer: How often a reading is taken, in seconds
  - `Samples` TelemetrySample[]: The readings of the window asked for, oldest first
    - `Taken` string, date-time: When it was taken
    - `ManagedBytes` integer: What the managed heap holds
    - `HeapCommittedBytes` integer: What the managed heap has committed
    - `HeapFragmentedBytes` integer: Of that, what lies free between objects
    - `WorkingSetBytes` integer: The working set of the process
    - `PrivateBytes` integer: The private memory of the process
    - `ResidentBytes` integer: Everything the process has in physical memory
    - `AnonymousBytes` integer: Of that, anonymous memory: heaps and stacks
    - `JitBytes` integer: Of that, code the JIT compiled
    - `AssemblyBytes` integer: Of that, assemblies mapped from disk
    - `OtherFileBytes` integer: Of that, other files mapped from disk
    - `SwapBytes` integer: What was swapped out
    - `Gen0Collections` integer: Generation 0 collections since the start
    - `Gen1Collections` integer: Generation 1 collections since the start
    - `Gen2Collections` integer: Generation 2 collections since the start
    - `AllocatedBytes` integer: Everything allocated since the start
    - `PausePercentage` number, double: The share of time spent paused for collections, in percent
    - `CpuPercentage` number, double: The share of every core the process used since the previous reading, in percent
    - `Threads` integer: Threads of the process
    - `Requests` integer: Requests answered since the previous reading
    - `Failed` integer: Of those, answered with a server error
    - `Upgrades` integer: Websocket upgrades since the previous reading
    - `InFlight` integer: Requests being answered as it was taken
    - `OpenSockets` integer: Open connections as it was taken
    - `AverageMillis` number, double: The mean time to answer since the previous reading, in milliseconds
    - `OpenConnections` integer: Connections established as it was taken
    - `AcceptedConnections` integer: Connections accepted since the start
    - `Connections` integer: Connections accepted since the previous reading
    - `FileDescriptors` integer: File descriptors the process holds
    - `SocketDescriptors` integer: Of those, sockets
    - `RingDescriptors` integer: Of those, io_uring rings
  - `Events` EventHistory: What happened on the platform per day, one series per kind of event.
    - `Days` string[]: The days covered, as `yyyy-MM-dd` in UTC, oldest first
    - `Series` EventSeries[]: One series per kind of event, its counts in the order of `days`
      - `Kind` string: `created`, `saved`, `deployed`, `undeployed` or `deleted` - of lambdas
      - `Counts` integer[]: How many happened on each day of the window
      - `Total` integer: How many have ever happened, beyond the window too

## Other responses

- `204`: A response containing no body
- `401`: The token is missing.
- `403`: The token is wrong.

---

[API](https://skmtc.dev/genhttp/apis/genhttp-lambda-api.md) · [All operations](https://skmtc.dev/genhttp/apis/genhttp-lambda-api/llms.txt) · [OpenAPI document](https://skmtc.dev/genhttp/apis/genhttp-lambda-api/revisions/8b36699e03df?raw)
