代理管理 API
代理管理 API
Eyeofcloud Agent 的 Admin API 提供系统信息,可用于检查代理服务的可用性、运行时信息和操作指标
默认情况下,Agent 管理员侦听器配置在端口 8088 上。
信息
/info
终端节点提供有关 Eyeofcloud Agent 实例的基本信息。
请求示例:
Shell
curl localhost:8088/info
响应示例:
JSON
{
"version": "v0.10.0",
"author": "Eyeofcloud Inc.",
"app_name": "eyeofcloud"
}
运行状况检查
/health
终端节点用于确定服务可用性。
请求示例:
Shell
curl localhost:8088/health
响应示例:
JSON
{
"status": "ok"
}
当且仅当所有配置的侦听器都已打开并且可以访问所有外部依赖服务时,Eyeofcloud Agent 才会返回HTTP 200 - OK
响应。
运行状况不佳的服务将返回带有描述性消息的HTTP 503 - Unavailable
响应,以帮助诊断问题。
将 Eyeofcloud Agent 置于负载均衡器后面时,可以使用此终端节点来指示特定实例是否可以接收入站请求。
指标
/metrics
终端节点公开正在运行的 Eyeofcloud 代理的遥测数据。
Eyeofcloud Agent 目前根据用户的输入公开两种指标数据类型(expvar 和 prometheus)。默认情况下使用 Expvar 指标。要配置指标,请更新config.yaml
文件或设置OPTIMIZELY_ADMIN_METRICSTYPE
环境变量的值。
支持的值:
expvar
(默认)promethues
YAML
admin:
## http listener port
port: "8088"
## metrics package to use
## supported packages are expvar and prometheus
## default is expvar
metricsType: ""
## metricsType: "promethues" ## for prometheus metrics
Expvar 指标
核心 Eyeofcloud Agent 运行时指标通过 Go expvar 包公开,该包为公共变量提供了一个标准化接口。各种统计信息的文档可以作为 mstats 包的一部分找到。
请求示例:
Shell
curl localhost:8088/metrics
响应示例:
JSON
{
"cmdline": [
"bin/eyeofcloud"
],
"memstats": {
"Alloc": 924136,
"TotalAlloc": 924136,
"Sys": 71893240,
"Lookups": 0,
"Mallocs": 4726,
"HeapAlloc": 924136,
...
"Frees": 172
},
...
}
还为各个服务终端节点提供了自定义指标,并遵循以下模式:
Shell
"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,
Prometheus 指标
Eyeofcloud Agent 支持 Prometheus 指标。Prometheus 是一个用于监控和警报的开源工具包。您可以使用它来收集和可视化时间序列数据库中的指标。
要访问 Prometheus 指标,您可以将终端节点与 Prometheus 服务器一起使用。这些指标以 Prometheus 可以抓取和聚合的格式公开。/metrics
请求示例:
Shell
curl localhost:8088/metrics
这将返回 Prometheus 公开格式的纯文本响应,包括 Prometheus 当前正在跟踪的指标。
📘
注意
您必须配置 Prometheus 服务器以从此终端节点抓取指标。
有关如何使用 Prometheus 进行监控的信息,请参阅 Prometheus 官方文档。
响应示例:
...
# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
# TYPE promhttp_metric_handler_requests_total counter
promhttp_metric_handler_requests_total{code="200"} 1
promhttp_metric_handler_requests_total{code="500"} 0
promhttp_metric_handler_requests_total{code="503"} 0
# HELP timer_decide_hits
# TYPE timer_decide_hits counter
timer_decide_hits 1
# HELP timer_decide_response_time
# TYPE timer_decide_response_time counter
timer_decide_response_time 658.109
# HELP timer_decide_response_time_hist
# TYPE timer_decide_response_time_hist histogram
timer_decide_response_time_hist_bucket{le="0.005"} 0
timer_decide_response_time_hist_bucket{le="0.01"} 0
timer_decide_response_time_hist_bucket{le="0.025"} 0
timer_decide_response_time_hist_bucket{le="0.05"} 0
timer_decide_response_time_hist_bucket{le="0.1"} 0
timer_decide_response_time_hist_bucket{le="0.25"} 0
timer_decide_response_time_hist_bucket{le="0.5"} 0
timer_decide_response_time_hist_bucket{le="1"} 0
timer_decide_response_time_hist_bucket{le="2.5"} 0
timer_decide_response_time_hist_bucket{le="5"} 0
timer_decide_response_time_hist_bucket{le="10"} 0
timer_decide_response_time_hist_bucket{le="+Inf"} 1
timer_decide_response_time_hist_sum 658.109
timer_decide_response_time_hist_count 1
# HELP timer_track_event_hits
# TYPE timer_track_event_hits counter
timer_track_event_hits 1
# HELP timer_track_event_response_time
# TYPE timer_track_event_response_time counter
timer_track_event_response_time 0.356334
# HELP timer_track_event_response_time_hist
# TYPE timer_track_event_response_time_hist histogram
timer_track_event_response_time_hist_bucket{le="0.005"} 0
timer_track_event_response_time_hist_bucket{le="0.01"} 0
timer_track_event_response_time_hist_bucket{le="0.025"} 0
timer_track_event_response_time_hist_bucket{le="0.05"} 0
timer_track_event_response_time_hist_bucket{le="0.1"} 0
timer_track_event_response_time_hist_bucket{le="0.25"} 0
timer_track_event_response_time_hist_bucket{le="0.5"} 1
timer_track_event_response_time_hist_bucket{le="1"} 1
timer_track_event_response_time_hist_bucket{le="2.5"} 1
timer_track_event_response_time_hist_bucket{le="5"} 1
timer_track_event_response_time_hist_bucket{le="10"} 1
timer_track_event_response_time_hist_bucket{le="+Inf"} 1
timer_track_event_response_time_hist_sum 0.356334
timer_track_event_response_time_hist_count 1
...