8.7. 使用 FlowMetric API 配置自定义 chart


您可以在 OpenShift Container Platform web 控制台中为仪表板生成图表,如果您是管理员,可以通过定义 FlowMetric 资源的 charts 部分在 Dashboard 菜单中查看。

流程

  1. 在 Web 控制台中,进入到 Operators Installed Operators
  2. NetObserv OperatorProvided APIs 标题中,选择 FlowMetric
  3. Project: 下拉列表中,选择 Network Observability Operator 实例的项目。
  4. Create FlowMetric
  5. 配置 FlowMetric 资源,类似于以下示例配置:

例 8.3. 用于跟踪从集群外部源接收的 ingress 字节的图表

apiVersion: flows.netobserv.io/v1alpha1
kind: FlowMetric
metadata:
  name: flowmetric-cluster-external-ingress-traffic
  namespace: netobserv   1
# ...
  charts:
  - dashboardName: Main  2
    title: External ingress traffic
    unit: Bps
    type: SingleStat
    queries:
    - promQL: "sum(rate($METRIC[2m]))"
      legend: ""
  - dashboardName: Main  3
    sectionName: External
    title: Top external ingress traffic per workload
    unit: Bps
    type: StackArea
    queries:
    - promQL: "sum(rate($METRIC{DstK8S_Namespace!=\"\"}[2m])) by (DstK8S_Namespace, DstK8S_OwnerName)"
      legend: "{{DstK8S_Namespace}} / {{DstK8S_OwnerName}}"
# ...
1
FlowMetric 资源需要在 FlowCollector spec.namespace 中定义的命名空间中创建,默认为 netobserv

验证

  1. pod 刷新后,进入到 Observe Dashboards
  2. 搜索 NetObserv / Main 仪表板。查看 NetObserv / Main 仪表板下的两个面板,或您创建的仪表板名称(可选):

    • 一个静态的文本形式的统计数据,显示所有维度中的全局外部入口率总和
    • 一个时间序列图,为每个目标工作负载显示相同指标

有关查询语言的更多信息,请参阅 Prometheus 文档

例 8.4. 集群外部入口流量的 RTT 延迟的图表

apiVersion: flows.netobserv.io/v1alpha1
kind: FlowMetric
metadata:
  name: flowmetric-cluster-external-ingress-traffic
  namespace: netobserv   1
# ...
  charts:
  - dashboardName: Main  2
    title: External ingress TCP latency
    unit: seconds
    type: SingleStat
    queries:
    - promQL: "histogram_quantile(0.99, sum(rate($METRIC_bucket[2m])) by (le)) > 0"
      legend: "p99"
  - dashboardName: Main  3
    sectionName: External
    title: "Top external ingress sRTT per workload, p50 (ms)"
    unit: seconds
    type: Line
    queries:
    - promQL: "histogram_quantile(0.5, sum(rate($METRIC_bucket{DstK8S_Namespace!=\"\"}[2m])) by (le,DstK8S_Namespace,DstK8S_OwnerName))*1000 > 0"
      legend: "{{DstK8S_Namespace}} / {{DstK8S_OwnerName}}"
  - dashboardName: Main  4
    sectionName: External
    title: "Top external ingress sRTT per workload, p99 (ms)"
    unit: seconds
    type: Line
    queries:
    - promQL: "histogram_quantile(0.99, sum(rate($METRIC_bucket{DstK8S_Namespace!=\"\"}[2m])) by (le,DstK8S_Namespace,DstK8S_OwnerName))*1000 > 0"
      legend: "{{DstK8S_Namespace}} / {{DstK8S_OwnerName}}"
# ...
1
FlowMetric 资源需要在 FlowCollector spec.namespace 中定义的命名空间中创建,默认为 netobserv
2 3 4
使用不同的 dashboardName 创建一个前缀为 Netobserv 的新仪表板。例如,Netobserv / <dashboard_name>.

这个示例使用 histogram_quantile 函数来显示 p50p99

您可以通过划分指标 $METRIC_sum 来显示直方图的平均直方图,即指标 $METRIC_count,在创建直方图时自动生成。在上例中,要执行此操作的 Prometheus 查询如下:

promQL: "(sum(rate($METRIC_sum{DstK8S_Namespace!=\"\"}[2m])) by (DstK8S_Namespace,DstK8S_OwnerName) / sum(rate($METRIC_count{DstK8S_Namespace!=\"\"}[2m])) by (DstK8S_Namespace,DstK8S_OwnerName))*1000"

验证

  1. pod 刷新后,进入到 Observe Dashboards
  2. 搜索 NetObserv / Main 仪表板。查看 NetObserv / Main 仪表板下的新面板,或您创建的仪表板名称(可选)。

有关查询语言的更多信息,请参阅 Prometheus 文档

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.