
micrometermetrics/prometheus-rsocket-proxyPrometheus RSocket Proxy 是一个基于 RSocket 协议的代理服务,旨在解决应用程序因网络限制无法接收入站连接(仅能建立出站连接)时的指标收集问题。该代理作为中间层,允许应用程序主动发起出站连接并推送指标,同时为 Prometheus 等监控系统提供标准的指标拉取端点,通常与 Micrometer 指标库配合使用,是分布式环境下受限网络中指标收集的解决方案。
bashdocker run -d \ --name prometheus-rsocket-proxy \ -p 9096:9096 \ # RSocket 服务端口(默认) -p 8080:8080 \ # HTTP 指标端点端口(供 Prometheus 拉取) micrometermetrics/prometheus-rsocket-proxy
yamlversion: '3.8' services: prometheus-rsocket-proxy: image: micrometermetrics/prometheus-rsocket-proxy container_name: prometheus-rsocket-proxy ports: - "9096:9096" # RSocket 服务端口 - "8080:8080" # HTTP 指标端点端口 environment: - PROXY_SERVER_PORT=9096 # RSocket 服务监听端口 - SERVER_PORT=8080 # HTTP 端点端口(Prometheus 拉取) - ROCKET_TRANSPORT=tcp # 传输方式(tcp 或 websocket) - METRICS_PATH=/metrics # Prometheus 拉取指标的 HTTP 路径 restart: unless-stopped
rsocket://proxy-host:9096)prometheus.yml 中添加对代理 HTTP 端点的抓取配置:
yamlscrape_configs: - job_name: 'rsocket-proxy' static_configs: - targets: ['proxy-host:8080'] # 代理的 HTTP 指标端点
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PROXY_SERVER_PORT | RSocket 服务监听端口 | 9096 |
SERVER_PORT | HTTP 指标端点端口 | 8080 |
RSOCKET_TRANSPORT | RSocket 传输方式 | tcp |
METRICS_PATH | Prometheus 指标拉取路径 | /metrics |
LOGGING_LEVEL_ROOT | 日志级别 | INFO |
PROXY_KEEPALIVE_INTERVAL | RSocket 连接保活间隔(秒) | 30 |
如需更复杂配置,可通过挂载外部配置文件(如 application.yml)到容器 /app/config 目录:
yaml# application.yml 示例 rsocket: server: port: 9096 transport: tcp server: port: 8080 management: endpoints: web: exposure: include: health,metrics metrics: export: prometheus: enabled: true
挂载命令示例:
bashdocker run -d \ --name prometheus-rsocket-proxy \ -p 9096:9096 \ -p 8080:8080 \ -v ./application.yml:/app/config/application.yml \ micrometermetrics/prometheus-rsocket-proxy

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务