
coco/publish-availability-monitorpublish-availability-monitor是一个用于监控发布可用性并收集相关指标的工具。它能够跟踪内容发布流程的可用性,并将收集到的指标发送至Splunk等系统,以便进行后续分析和监控。
适用于需要监控内容发布流程可用性的系统,特别是在多环境部署的内容发布平台中。可用于跟踪内容从发布到可用的整个流程,确保符合SLA要求,并为系统性能分析提供数据支持。
bashdocker build -t coco/publish-availability-monitor .
bashdocker run -ti \ --env QUEUE_ADDR=<队列地址> \ --env S3_URL=<S3存储桶URL> \ --env CONTENT_URL=<文档存储API文章端点路径> \ --env LISTS_URL=<文档存储API列表端点路径> \ --env NOTIFICATIONS_URL=<通知读取路径> \ --env NOTIFICATIONS_PUSH_URL=<通知推送路径> \ --env METHODE_ARTICLE_TRANSFORMER_URL=<Methode文章转换器URL> \ --env METHODE_CONTENT_PLACEHOLDER_MAPPER_URL=<Methode内容占位符映射器URL> \ coco/publish-availability-monitor
注意:不再支持部署至FTP2。
json// 内容发布的SLA阈值(秒) // 应用将检查内容可用性,直至达到此阈值或找到内容 "threshold": 120
json// 要读取的队列配置 "queueConfig": { // 消息系统的URL(s) "address": ["队列地址1", "队列地址2"], // 应用在消息系统中的组名 "group": "YourGroupName", // 要获取消息的主题 "topic": "YourTopic", // 要使用的队列名称 "queue": "yourQueue" }
json// 每个要检查的端点需对应一个metricConfig条目 "metricConfig": [ { // 端点路径(或绝对URL) // 路径会基于每个环境的read_url设置解析 // 检查内容时,UUID会附加到此URL末尾 // 应以/结尾 "endpoint": "endpointURL", // 用于关联端点特定行为的别名 // 每个别名需在endpointSpecificChecks映射中有对应条目 "alias": "content", // 定义检查此端点的频率(检查间隔 = threshold / granularity) // 例:120 / 40 = 3 → 每3秒检查一次 "granularity": 40 }, { "endpoint": "endpointURL", "granularity": 40, "alias": "S3", // 可选字段,指示仅检查特定类型的内容 // 若不设置,将检查所有内容 "contentTypes": ["Image"] } ]
json// Feeder特定配置 // 每个feeder需对应一个新结构体、AppConfig中的新字段, // 并在startAggregator()中处理 "splunk-config": { "logFilePath": "/var/log/apps/pam.log" }
应用每分钟(可配置)检查环境配置和验证凭据,若检测到变更则自动重载。监控可跨多个环境检查发布情况,每个环境可通过单一主机URL访问。
配置可通过ETCD或文件读取:若ETCD_PEERS环境变量设为NOT_AVAILABLE,则从文件读取配置;否则从ETCD读取。
监控从ETCD读取并监听以下路径的变更:
/ft/config/monitoring/read-urls:逗号分隔的名称:值对,映射环境名称到基础读取URL,例:env1:[***]/ft/config/monitoring/s3-image-bucket-urls:逗号分隔的名称:值对,映射环境名称到基础S3 URL,例:env1:[***]/ft/_credentials/publish-read/read-credentials:逗号分隔的名称:用户名:密码元组,映射环境名称到HTTP基本认证凭据,例:env1:scott:tiger,env2:friend:frodo。名称需与read-urls中的名称匹配;无需认证的环境可省略。json[ { "name": "pre-prod-uk", "read-url": "[***]", "s3-url": "[***]" }, { "name": "pre-prod-us", "read-url": "[***]", "s3-url": "[***]" } ]
json[ { "env-name": "pre-prod-uk", "username": "dummy-username", "password": "dummy-pwd" }, { "env-name": "pre-prod-us", "username": "dummy-username", "password": "dummy-pwd" } ]
json{ "username": "dummy-username", "password": "dummy-password" }
注意:已启动的检查不受上述配置变更影响。
在K8s中使用基于文件的环境配置,文件内容来自以下资源:
global-config ConfigMap,键为pam.read.environmentspublish-availability-monitor-secrets Secret,键为read-credentialspublish-availability-monitor-secrets Secret,键为validator-credentials这些键可动态修改,应用会在短延迟后自动获取更新,无需重启。更多详情参见Kubernetes ConfigMap自动更新。

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