Envoy 提供了一个本地管理接口,该接口可用于查询和修改服务器配置
配置启动配置
admin:
profile_path: /tmp/envoy.prof
address:
socket_address: { address: 127.0.0.1, port_value: 9901 }
对外暴露的接口
访问 127.0.0.1:9901/help查每个管理员命令说明如下:
/: HTML 格式的管理员主页
/allocprofiler (POST): 启用/禁用内存分配分析器(如果支持)
enable: 启用/禁用内存分配分析器;取值之一为 (y, n)
/certs: 打印机器上的证书,包括文件名,序列号,主题备用名称以及符合证书原型定义的 JSON 格式到期的天数
/clusters: 上游集群状态,此信息包括每个群集中发现的所有上游主机以及每个主机统计信息,这对于调试服务发现问题很有用
/config_dump: 导出当前 Envoy 配置(实验性)
resource: 要导出的资源
mask: 要应用的掩码。当同时指定 resource 和 mask 时,掩码将应用于所需重复字段中的每个元素,以便仅返回字段的子集。该掩码解析为 ProtobufWkt::FieldMask
name_regex: 仅导出名称匹配指定正则表达式的当前加载配置。可与 resource和 mask查询参数一起使用。
include_eds: 导出当前加载的配置,包括 EDS。更多信息请参阅响应定义
- 示例:
- http://127.0.0.1:9000/config_dump?resource=static_clusters&mask=&name_regex=
- http://127.0.0.1:9000/config_dump?resource=static_clusters&mask=cluster.name&name_regex=
- http://127.0.0.1:9000/config_dump?resource=dynamic_active_clusters&mask=&name_regex=
/contention: 导出当前 Envoy 互斥锁竞争统计信息(如果已启用)
/cpuprofiler (POST): 启用/禁用 CPU 分析器
enable: 启用 CPU 分析器;取值之一为 (y, n)
/drain_listeners (POST): 优雅关闭(排空)监听器
graceful: 当排空监听器时,在关闭监听器之前进入一个优雅排空期。此行为和持续时间可通过服务器选项或 CLI 进行配置
skip_exit: 当排空监听器时,排空期后不退出。这必须与 graceful一起使用
inboundonly: 排空所有入站监听器。 envoy_v3_api_msg_config.listener.v3.Listener中的 traffic_direction字段用于确定监听器是入站还是出站。
/healthcheck/fail (POST): 导致服务器健康检查失败
/healthcheck/ok (POST): 导致服务器健康检查通过
/heap_dump: 导出当前 Envoy 堆(如果支持)
/heapprofiler (POST): 启用/禁用堆分析器
enable: 启用/禁用堆分析器;取值之一为 (y, n)
/help: 打印管理员命令列表
/hot_restart_version: 打印热重启兼容版本
/init_dump: 导出当前 Envoy 初始化管理器信息(实验性)
mask: 要导出未就绪目标的所需组件。该掩码解析为 ProtobufWkt::FieldMask。例如,使用 /init_dump?mask=listener获取所有监听器的未就绪目标
/listeners: 打印监听器信息
format: 要使用的文件格式;取值之一为 (text, json)
/logging (POST): 查询/更改日志级别
paths: 通过设置为 <logger_name1>:<desired_level1>,<logger_name2>:<desired_level2>来更改多个日志级别。如果启用了细粒度日志记录,请使用 __FILE__或全局表达式作为日志记录器名称。例如,source/common*:warning
level: 所需的日志级别,这将更改所有日志记录器的级别;取值之一为 (, trace, debug, info, warning, error, critical, off)
/memory: 打印当前分配/堆使用情况
/quitquitquit (POST): 退出服务器
/ready: 打印服务器状态,如果 LIVE则返回 200,否则返回 503
/reopen_logs (POST): 重新打开访问日志
/reset_counters (POST): 将所有计数器重置为零
/runtime: 打印运行时值
/runtime_modify (POST): 添加或修改通过查询参数传入的运行时值。要删除先前添加的键,请使用空字符串作为值。请注意,删除仅适用于通过此端点添加的覆盖;从磁盘加载的值可以通过覆盖修改但不能删除。例如:?key1=value1&key2=value2...
/server_info: 打印服务器版本/状态信息
/stats: 打印服务器统计信息
usedonly: 仅包含自重启以来系统已写入的统计信息
filter: 用于过滤统计信息的正则表达式 (Google re2)
format: 要使用的格式;取值之一为 (html, active-html, text, json)
type: 要包含的统计信息类型;取值之一为 (All, Counters, Histograms, Gauges, TextReadouts)
histogram_buckets: 直方图桶显示模式;取值之一为 (cumulative, disjoint, detailed, summary)
/stats/prometheus: 以 Prometheus格式打印服务器统计信息
usedonly: 仅包含自重启以来系统已写入的统计信息
text_readouts: 将 text_readouts渲染为值为 0的新仪表盘(会增加 Prometheus 数据大小)
filter: 用于过滤统计信息的正则表达式 (Google re2)
histogram_buckets: 直方图桶显示模式;取值之一为 (cumulative, summary)
/stats/recentlookups: 显示最近的统计名称查询
/stats/recentlookups/clear (POST): 清除统计名称查询列表和计数器
/stats/recentlookups/disable (POST): 禁用记录重置的统计名称查询名称
/stats/recentlookups/enable (POST): 启用记录重置的统计名称查询名称