可观测云服务集成

有时,你可能已经拥有 Prometheus 和 Grafana 实例。 它们可能由其他工具构建,或者来自云提供商。 按照以下指南与现有系统集成。

如果你已经有外部 prometheus 服务,并且希望将其连接到 Grafana(由 vela 插件创建),你可以使用 KubeVela Application 创建一个 GrafanaDatasource 从而注册这个外部的 prometheus 服务。

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: register-prometheus
  5. spec:
  6. components:
  7. - type: grafana-datasource
  8. name: my-prometheus
  9. properties:
  10. access: proxy
  11. basicAuth: false
  12. isDefault: false
  13. name: MyPrometheus
  14. readOnly: true
  15. withCredentials: true
  16. jsonData:
  17. httpHeaderName1: Authorization
  18. tlsSkipVerify: true
  19. secureJsonFields:
  20. httpHeaderValue1: <token of your prometheus access>
  21. type: prometheus
  22. url: <my-prometheus url>

例如,如果你在阿里云(ARMS)上使用 Prometheus 服务,你可以进入 Prometheus 设置页面,找到访问的 url 和 token。

arms-prometheus

你需要确定你的 grafana 已经可以访问。你可以执行 kubectl get grafana default 查看它是否已经存在。

如果你已经有 Grafana,与集成 Prometheus 类似,你可以通过 KubeVela Application 注册 Grafana 的访问信息。

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: register-grafana
  5. spec:
  6. components:
  7. - type: grafana-access
  8. name: my-grafana
  9. properties:
  10. name: my-grafana
  11. endpoint: <my-grafana url>
  12. token: <access token>

要获得 Grafana 访问权限,你可以进入 Grafana 实例并配置 API 密钥。

grafana-apikeys

然后将 token 复制到你的 grafana 注册配置中。

grafana-added-apikeys

Application 成功派发后,你可以通过运行以下命令检查注册情况。

  1. > kubectl get grafana
  2. NAME ENDPOINT CREDENTIAL_TYPE
  3. default http://grafana.o11y-system:3000 BasicAuth
  4. my-grafana https://grafana-rngwzwnsuvl4s9p66m.grafana.aliyuncs.com:80/ BearerToken

现在,你也可以通过原生 Kubernetes API 在 grafana 实例上管理 dashboard 和数据源。

  1. # 显示你拥有的所有 dashboard
  2. kubectl get grafanadashboard -l grafana=my-grafana
  3. # 显示你拥有的所有数据源
  4. kubectl get grafanadatasource -l grafana=my-grafana

更多详情,你可以参考 vela-prism

除了上述较为直接的对接方法,另一种方法是使用 KubeVela 中的配置管理能力来将已有 Prometheus 或 Grafana 连接到 KubeVela 系统中来。详见配置管理章节。

用户可以利用社区的各种工具或生态系统来构建自己的可观测性系统,例如 prometheus-operator 或 DataDog。 到目前为止,针对这些集成,KubeVela 并没有给出最佳实践。 未来我们可能会通过 KubeVela 插件集成那些流行的项目。 我们也欢迎社区贡献更广泛的探索和更多的联系。

Last updated on 2023年8月4日 by Daniel Higuero