ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Harbor 导入官方 Grafana 仪表盘可视化 Exporter 监控指标

Harbor 导入官方 Grafana 仪表盘可视化 Exporter 监控指标 Harbor 导入官方 Grafana 仪表盘可视化 Exporter 监控指标【免费下载链接】harborAn open source trusted cloud native registry project that stores, signs, and scans content.项目地址: https://gitcode.com/GitHub_Trending/ha/harborHarbor 自带一个 Exporter 组件通过 Prometheus 格式的/metrics端点暴露组件健康、项目配额、任务队列、Core/Registry 请求等指标仓库在contrib/grafana-dashboard/目录下随源码提供了一份官方 Grafana 仪表盘。本文的任务是先让 Harbor 开启并验证 Exporter 指标输出再把仓库中的metrics-example.json导入 Grafana让指标以面板形式可视化。适用前提Harbor 已通过 install 脚本docker compose 方式部署并可正常访问已有一套 Grafana 实例。仓库contrib/grafana-dashboard/README.md明确说明该仪表盘基于Grafana v8制作可能不兼容更早的 Grafana 版本仪表盘内各面板引用的是 Prometheus 类型数据源因此需要一个已配置好的 Prometheus 数据源或已指向 Harbor 指标的 Prometheus 实例供导入时选择。仪表盘截图来自仓库文档尺寸偏高仅作面板参考一、在 harbor.yml 中开启 ExporterHarbor 安装目录下的harbor.yml中有一段默认注释掉的 metric 配置见 make/harbor.yml.tmpl# metric: # enabled: false # port: 9090 # path: /metrics取消注释并按需修改metric: enabled: true port: 9090 path: /metricsport与path即上面模板注释中给出的默认值9090、/metrics。Exporter 是否随实例启动完全由metric.enabled决定prepare 脚本只有在config_dict[metric].enabled为真时才会渲染 exporter 配置并写入 docker-composecompose 模板中的 exporter 服务同样包裹在{% if metric.enabled %}条件里见 docker-compose.yml.jinja。修改harbor.yml后重新执行 Harbor 的安装/更新脚本使配置生效离线安装脚本为install.sh与harbor.yml位于同一目录。副作用提示该脚本会重新 prepare 配置并重启各组件容器执行前确认harbor.yml中其他项数据库密码、证书路径等无误。二、验证 Exporter 与 /metrics 端点确认容器与默认参数开启后 compose 中会多出如下服务模板渲染结果exporter: image: goharbor/harbor-exporter:版本 container_name: harbor-exporter env_file: - ./common/config/exporter/env restart: always depends_on: - core可用docker ps | grep harbor-exporter确认容器在运行。Exporter 的关键默认值由 env.jinja 生成环境变量默认值用途HARBOR_EXPORTER_PORT8080Exporter 监听端口HARBOR_EXPORTER_METRICS_PATH/metrics指标路径HARBOR_EXPORTER_MAX_REQUESTS30限制请求数HARBOR_EXPORTER_CACHE_TIME23指标缓存时间秒HARBOR_SERVICE_HOST/HARBOR_SERVICE_PORTcore/ 8080启用 internal_tls 时为 https:8443Exporter 回调 Harbor core 的地址Exporter 连接 core、数据库与 Redis 采集数据注册的采集器包括 health、system info、project、job service、statistics见 exporter.go。/路径返回一个简单的 HTML 页页面内有指向 metrics 路径的链接可用浏览器打开做连通性检查。从 metrics 端点核对指标名仓库的 API 测试 test_verify_metrics_enabled.py 给出了端点用法向 metrics 地址发起请求不带参数返回 exporter 指标带compcore、compregistry、compjobservice参数分别代理对应组件的指标。以 Harbor 对外地址为例harbor替换为你的 Harbor 主机名/IP端口为harbor.yml中metric.port的值默认 9090# exporter 自身指标 curl http://harbor:9090/metrics # core / registry / jobservice 组件指标 curl http://harbor:9090/metrics?compcore curl http://harbor:9090/metrics?compregistry curl http://harbor:9090/metrics?compjobservice返回文本中应能看到 exporter 侧的指标名例如harbor_up、harbor_health、harbor_system_info、harbor_project_total、harbor_project_quota_usage_byte、harbor_task_concurrency、harbor_task_queue_size、harbor_artifact_pulled以及 Go 运行时基础指标go_gc_duration_seconds、go_goroutines等。这些名称与上文 curl 输出的对应关系来自该测试用例的断言列表。若某个指标缺失先回到上一步确认metric.enabled: true已生效、harbor-exporter容器存活。三、导入官方 Grafana 仪表盘打开 Grafana 的 Dashboards → New → Import。上传仓库中的仪表盘文件 contrib/grafana-dashboard/metrics-example.jsonGrafana v8 导出的 JSONschemaVersion: 36标题为Harbor。导入时选择 Prometheus 数据源。注意该 JSON 没有__inputs/templating变量定义但面板里引用了${datasource}、${DS_PROMETHEUS}这类数据源占位写法导入后需要把面板/行级数据源指向你的 Prometheus 数据源Grafana 导入界面通常会提示替换数据源若界面不提示则进入仪表盘编辑逐个检查面板的数据源设置。保存仪表盘。导入后仪表盘包含的分组与面板与该 JSON 中panels定义一致Infocomponent up status基于harbor_up、Quota Usage基于harbor_project_quota_usage_byte项目维度project members、Project repo total、artifacts pulledCore Metricsharbor core request rate、API request time 0.9、harbor core inflight requestsGeneral metricsProcess opened fd、Process CPU time、go threads、goroutines、Go heap objects、go allocated memory、go next gc bytes、go gc time分位面板JobService Metricstask latency、task concurrency、task queue pending size、tasks per minute、number of running scheduled jobsRegistry MetricRegistry request inflight、Registry request rate、registry request time 0.9、registry request size 0.9、registry response size 0.9。四、结果验证与边界验证方式是打开导入后的仪表盘确认各分组面板出现曲线或数值而不是 No data。判断方法component up status面板应有组件记录对应指标为harbor_up第二步 curl/metrics能取到即说明数据链已通Core/Registry 分组面板依赖compcore、compregistry路径上的指标harbor_core_http_request_total、registry_http_requests_total等有推拉流量后面板才会上数若所有面板均无数据依次检查Prometheus 数据源配置Scrape 是否覆盖第二步的 metrics 地址、harbor-exporter容器状态、harbor.yml中metric.enabled是否已生效。需要留意的边界Grafana 版本低于 v8 时该仪表盘可能无法正常工作这是仓库 README 的明确说明Exporter 指标带缓存HARBOR_EXPORTER_CACHE_TIME默认 23 秒缓存清理间隔默认 14400 秒面板数值刷新存在延迟属预期行为仪表盘只覆盖上述 exporter/core/registry/jobservice 指标面板未包含告警规则或通知渠道配置这些需在 Grafana 中自行添加。【免费下载链接】harborAn open source trusted cloud native registry project that stores, signs, and scans content.项目地址: https://gitcode.com/GitHub_Trending/ha/harbor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表