I'm a mother of two precious kids and a professional programmer.
快訊!我的新書登上天瓏網路書店11月份暢銷榜第一名啦!看過的都說讚!歡迎大家前往訂購!
>>>> AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題 <<<<
甚麼是JSON Exporter JSON Exporter是一個Prometheus的exporter(指標收集器),它能夠從提供JSON格式的API中收集指標數據,並將這些數據轉換為Prometheus所支持的格式,以便Prometheus進行分析和視覺化。 JSON Exporter的運行方式是通過設置JSON配置文件,其中包括API端點和相關的指標數據,然後使用Prometheus的配置文件將JSON Exporter添加到Prometheus的targets列表中。 JSON Exporter可以收集各種不同類型的指標數據,例如計數器(counters)、量規(gauges)和直方圖(histograms)等,並可以根據需要對數據進行轉換和聚合。 如何設置Exporter 在官方的Writing exporters文件中,有下面這一段 Each exporter should monitor exactly one instance application, preferably sitting right beside it…
設定擴充的行為,sacle down及up的時候所做的行為,這邊的設定是假如維持300秒都穩定相同狀況,則做HPA縮放,最少維持這種狀態60秒,一次增加1個Pod 這邊則設定要參考的數值,若是要使用自訂義資料,則describedObject這邊要設定的與我們在Rules裡面設定的一致,target部分則設定每一個pods的目標值為多少 下面scaleTargetRef的部分則是設定要做HPA的目標是甚麼,有可能是Services,這邊做HPA的目標則為Pod stream_total_clients_by_pod是我們的客製化變數,這個變數是來自於普羅米修斯,要把普羅米修斯的變數給k8s使用,請參見 http://claire-chang.com/2022/12/16/prometheus-rule-for-alert/ 這邊很重要的是可以看到label裡面有name: eventqueue,在Prometheus Rule裡一定也要加上labels: service: eventqueue 這樣這個值才會可以被輸出給普羅米修斯使用 如下圖: 其他更多的設定值請見: https://docs.openshift.com/container-platform/4.9/nodes/pods/nodes-pods-autoscaling.html
Prometheus Target 普羅米修斯 (Prometheus) 是一套開源的監控系統,其中一個重要的功能就是監控 Service (服務) 的運作狀態,這個功能被稱為 Service Monitoring。 Service Monitoring 可以藉由 exporter,透過定義 HTTP endpoints 的方式,監控這些服務的運作狀態。普羅米修斯會定期呼叫這些 endpoints ,並且收集回應的 metrics 以了解服務是否正常運作、服務的吞吐量、延遲、錯誤率等相關資訊。 Service Monitoring 可以提供以下的監控能力: 監控服務的可用性,例如偵測服務是否還在運作、是否正常回應等等。…
下載Metricbeat的docker版本 官網介紹: https://www.elastic.co/beats/metricbeat 其中給普羅米修斯使用的模組為: https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-module-prometheus.html 官方映像檔: https://hub.docker.com/r/elastic/metricbeat 下載映像檔 docker pull docker.elastic.co/beats/metricbeat:8.5.3 新建一個Metricbeat的Pod 設定metrucbeat的deployment apiVersion: apps/v1 kind: Deployment metadata: name: metricbeat namespace: default spec: progressDeadlineSeconds: 600…
Prometheus Rule功能介紹 Prometheus Rule 是用於在 Prometheus 中定義規則的 YAML 配置文件。它可以根據指定的表達式或條件對 metrics 進行匹配和計算,並在達到一定條件時生成警報或創建新的 metrics。 Prometheus Rule 的主要功能如下: Metrics 計算:通過表達式對符合條件的 metrics 進行匹配和計算,生成新的 metrics。 警報:當符合指定條件的 metrics 達到一定閾值時,生成警報。 規則繫結:可以為指定的 metrics…
架構圖所在位置 Prometheus Web UI 如何在Rancher裡面查看Web UI 將Web UI轉到自己的電腦查看 kubectl -n cattle-monitoring-system port-forward prometheus-rancher-monitoring-prometheus-0 9090:9090 Web UI是普羅米修斯內建附帶的狀態查看頁面,可以從這邊來看現在普羅米修斯所使用的config或者endpoint的設定 Grafana Grafana完整的支持PromQL,並且提供自動補完功能,非常方便 安裝 sudo apt-get install -y apt-transport-https sudo…
當我們在看使用Prometheus-operator產生出來的yaml檔案時,會發現裡面用了許多的source_labels標籤,這個是讓operator可以進一步處理資料標籤的方式(如增/刪要送出的資料、端點) relabel_config Endpoint 的值是由 __scheme__ + __address__ + __metrics_path__ 所組成 添加新標籤 更新現有標籤 重寫現有標籤 更新指標名稱 刪除不需要的標籤 刪除不需要的指標 在特定條件下刪除指標 修改標籤名稱 從多個現有標籤構建標籤 更多教學 請見: [Prometheus] Service Discovery…
先決條件 需要一個具有管理員權限的 Kubernetes 集群。 安裝prometheus-operator 安裝prometheus-operator的自定義資源定義 (CRD) 以及運營商本身所需的 RBAC 資源。 運行以下命令以安裝 CRD 並將 Operator 部署到default命名空間中: 可以使用以下命令檢查是否完成: 佈署範例 這邊是使用OpenShift的yaml去設定相關佈署資訊,更多請見: https://docs.openshift.com/container-platform/4.11/rest_api/monitoring_apis/prometheus-monitoring-coreos-com-v1.html 部署一個簡單的Pod,其中包含 3 個image,用於偵聽端口並公開指標8080 apiVersion: apps/v1 kind:…
Prometheus Operator介紹 官方網站: https://prometheus-operator.dev/ Prometheus Operator 提供Kubernetes原生部署和管理Prometheus及相關監控組件。該項目的目的是為 Kubernetes 集群簡化和自動化基於 Prometheus 的監控堆棧的配置。 Prometheus算子包括但不限於以下特性: Kubernetes 自定義資源:使用 Kubernetes 自定義資源部署和管理 Prometheus、Alertmanager 及相關組件。 簡化的部署配置:配置 Prometheus 的基礎知識,例如版本、持久性、保留策略和本地 Kubernetes 資源的副本。 Prometheus Target…
PUSHGATEWAY介紹 Prometheus Pushgateway 的存在是為了允許臨時和批處理作業將其指標公開給 Prometheus。由於這類工作存在的時間可能不夠長,無法被抓取,因此他們可以將指標推送到 Pushgateway。Pushgateway 然後將這些指標公開給 Prometheus。 何時使用 PUSHGATEWAY 我們只建議在某些有限的情況下使用 Pushgateway。盲目地使用 Pushgateway 而不是 Prometheus 通常的 pull 模型來進行一般指標收集時,有幾個陷阱: 當通過單個 Pushgateway 監控多個實例時,Pushgateway 既成為單點故障又成為潛在的瓶頸。 up 你失去了普羅米修斯通過指標(在每次抓取時生成)的自動實例健康監控。 Pushgateway…
17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。
如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!