Dev guideAPI Reference
Dev guideAPI ReferenceUser GuideGitHubNuGetDev CommunityDoc feedbackLog In
GitHubNuGetDev CommunityDoc feedback

Agent admin API

Optimizely Agent's Admin API provides system information that can be used to check the availability of the Agent service, runtime information and operational metrics

📘

Note

By default, the admin listener is configured on port 8088.

Info

The /info endpoint provides basic information about the Optimizely Agent instance.

Example request:

curl localhost:8088/info

Example response:

{
    "version": "v0.10.0",
    "author": "Optimizely Inc.",
    "app_name": "optimizely"
}

Health check

The /health endpoint is used to determine service availability.

Example request:

curl localhost:8088/health

Example response:

{
   "status": "ok"
}

Optimizely Agent will return an HTTP 200 - OK response if and only if all configured listeners are open and all external dependent services can be reached.

A non-healthy service will return an HTTP 503 - Unavailable response with a descriptive message to help diagnose the issue.

This endpoint can be used when placing Agent behind a load balancer to indicate whether a particular instance can receive inbound requests.

Metrics

The /metrics endpoint exposes telemetry data of the running Optimizely Agent. The core runtime metrics are exposed via the Go expvar package. Documentation for the various statistics can be found as part of the mstats package.

Example request:

curl localhost:8088/metrics

Example response:

{
    "cmdline": [
        "bin/optimizely"
    ],
    "memstats": {
        "Alloc": 924136,
        "TotalAlloc": 924136,
        "Sys": 71893240,
        "Lookups": 0,
        "Mallocs": 4726,
        "HeapAlloc": 924136,
        ...
        "Frees": 172
    },
    ...
}

Custom metrics are also provided for the individual service endpoints and follow the pattern of:

"timers.<metric-name>.counts": 0,
"timers.<metric-name>.responseTime": 0,
"timers.<metric-name>.responseTimeHist.p50": 0,
"timers.<metric-name>.responseTimeHist.p90": 0,
"timers.<metric-name>.responseTimeHist.p95": 0,
"timers.<metric-name>.responseTimeHist.p99": 0,