戻る

個人的使えるPromQL on GCP

CPU使用率をコンテナごとに集計して表示

max by (container_name) (
    max_over_time(
        {"__name__"="kubernetes.io/container/cpu/limit_utilization",
        "monitored_resource"="k8s_container",
        "location"="asia-northeast1",
        "container_name"=~"a-service-app|b-service-app"}[15m]
    )
)

解説

  • max by (container_name):コンテナ名で集計する。maxは変更可能で、各コンテナのCPU使用率の平均値がほしければavgを使用する。by (...)は集計するキー。
  • max_over_time:時間範囲内の最大値を取る。
  • =~でサービス名名を部分一致で指定する。さらに|で複数のサービス名を指定する。
  • [15m]:時間範囲を15分に設定する。__interval__で自動。

実際のイメージ

CPU使用率

RabbitMQ

RabbitMQ Queue Message

avg_over_time(
  rabbitmq_queue_messages{
    location="asia-northeast1",
    queue=~"queue_a|queue_b|queue_c|queue_d"
  }[5m]
)

解説 これはキューの中のメッセージ数の時系列データを提供します。 キューの中のメッセージの定義は

rabbitmq_queue_messages=rabbitmq_queue_messages_ready+rabbitmq_queue_messages_unacked\begin{align} &\quad \rm{rabbitmq\_queue\_messages} \notag \\ &= \rm{rabbitmq\_queue\_messages\_ready} \notag \\ &\quad + \rm{rabbitmq\_queue\_messages\_unacked} \end{align}

RabbitMQ Queue Message Ready

avg_over_time(
  rabbitmq_queue_messages_ready{
    location="asia-northeast1",
    queue=~"queue_a|queue_b|queue_c|queue_d"
  }[5m]
)

RabbitMQ Queue Message Unacked

avg_over_time(
  rabbitmq_queue_messages_unacked{
    location="asia-northeast1",
    queue=~"queue_a|queue_b|queue_c|queue_d"
  }[5m]
)

Consumers

avg_over_time(
  rabbitmq_queue_consumers{
    location="asia-northeast1",
    queue=~"queue_a|queue_b|queue_c|queue_d"
  }[5m]
)

Net flow

(
  sum by (queue) (
    rate(rabbitmq_queue_messages_published_total{
      location="asia-northeast1",
      queue=~"queue_a|queue_b|queue_c|queue_d"
    }[5m])
  )
)
-
(
  sum by (queue) (
    deriv(rabbitmq_queue_messages{
      location="asia-northeast1",
      queue=~"queue_a|queue_b|queue_c|queue_d"
    }[5m])
  )
)
戻る