Sdílet prostřednictvím


Přizpůsobení kolekce metrik Prometheus z clusteru Kubernetes pomocí objektu ConfigMap

Když povolíte shromažďování metrik Prometheus z clusteru Kubernetes, použije výchozí kolekci k určení metrik, které se mají shromažďovat. Tento článek popisuje, jak můžete přizpůsobit tuto kolekci tak, aby splňovala vaše konkrétní požadavky na monitorování.

Mapa konfigurace

Následující objekt ConfigMap se používá ke konfiguraci sběru metrik a dalším nastavením pro metrikový doplněk. Tento ConfigMap ve výchozím nastavení v clusteru neexistuje, pokud je povolen spravovaný Prometheus.

Mapa konfigurace Popis
ama-metrics-settings-configmap Zahrnuje následující základní nastavení.
– Alias clusteru. Změní hodnotu cluster štítku v každé metrice převzaté z clusteru.
– Povolení nebo zakázání výchozích datových cílů pro scraping.
– Povolit shromažďování dat na základě anotace podu v rámci každého namespace.
– Seznamy pro uchování metrik. Určuje, které metriky jsou povolené z každého výchozího cíle.
- Intervaly výstřižků pro předdefinované cíle.
– Režim ladění pro identifikaci problémů s chybějícími metrikami Viz řešení potíží.

Upravte nastavení v objektu ConfigMap na základě následujících pokynů a pak ho použijte pomocí následujícího příkazu. AMA-Metrics pody je vyzvednou a restartují za 2 až 3 minuty, aby se použilo zadané nastavení konfigurace.

kubectl apply -f .\ama-metrics-settings-configmap.yaml

Povolení a zakázání výchozích cílů

Výchozí konfigurace metrik Prometheus ve službě Azure Monitor uvádí výchozí cíle a metriky, které se shromažďují ve výchozím nastavení z clusteru Kubernetes. Pokud chcete povolit nebo zakázat výstřižky některého z těchto cílů, aktualizujte nastavení cíle v default-scrape-settings-enabled části objektu ConfigMap na true nebo false.

Pokud chcete například povolit scrapování coredns, které je ve výchozím nastavení zakázáno, nastavení aktualizujte tímto způsobem:

default-scrape-settings-enabled: |-
    kubelet = true
    coredns = true
    cadvisor = true
    kubeproxy = false
    ...

Nastavení intervalu scrapování

Výchozí interval scrapování pro všechny výchozí cíle je 30 sekund. Chcete-li upravit tento interval pro jakýkoli cíl, můžete aktualizovat nastavení v default-targets-scrape-interval-settings části objektu ConfigMap.

Pokud chcete například změnit interval výstřižku na kubelet 60 sekund, aktualizujte nastavení následujícím způsobem:

default-targets-scrape-interval-settings: |-
    kubelet = "60s"
    coredns = "30s"
    cadvisor = "30s"
    ...

Povolit scrapování na základě anotací podů

Přidáním poznámek k podům ve vašem clusteru můžete sejmout data z aplikačních podů bez nutnosti vytvoření vlastní konfigurace Prometheus. Chcete-li povolit scrapování podů s konkrétními poznámkami, přidejte regulární výraz pro obory názvů podů s poznámkami, které chcete scrapovat, do sekce podannotationnamespaceregex v části ConfigMap.

Například následující nastavení extrahuje pody s poznámkami pouze v namespacech kube-system a my-namespace:

pod-annotation-based-scraping: |-
    podannotationnamespaceregex = "kube-system|my-namespace"

Přidejte poznámky do metadata oddílu objektu ConfigMap. prometheus.io/scrape: "true" je vyžadováno, aby se pod sešrotoval, zatímco prometheus.io/path a prometheus.io/port indikoval cestu a port, na které jsou metriky hostované na podu. Následující ukázka definuje poznámky pro pod, který hostuje metriky na <pod IP>:8080/metricsadrese .

metadata:   
  annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/path: '/metrics'
    prometheus.io/port: '8080'

Varování

Shromažďování anotací podů z mnoha jmenných prostorů může generovat velmi velký objem metrik v závislosti na počtu podů, které obsahují anotace.

Přizpůsobení metrik shromážděných podle výchozích cílů

Pro výchozí cíle se shromažďují jenom minimální metriky, jak je popsáno v profilu minimálního příjmu dat pro metriky Prometheus ve službě Azure Monitor. Pokud chcete shromáždit všechny metriky z výchozích cílů, nastavte minimalingestionprofile na false v části default-targets-metrics-keep-list objektu ConfigMap.

minimalingestionprofile = false

Případně můžete přidat metriky, které se mají shromažďovat pro jakýkoli výchozí cíl, a to tak, že aktualizujete jejich seznamy keep-lists v části default-targets-metrics-keep-list.

Jedná se například kubelet o nastavení filtrování metrik pro výchozí cílový kubelet. K filtrování metrik shromážděných pro předvolené cíle použijte následující skript založený na filtrování pomocí regulárního výrazu.

kubelet = "metricX|metricY"
apiserver = "mymetric.*"

Poznámka:

Pokud v regulárním výrazu použijete uvozovky nebo zpětné lomítko, musíte je eskapovat pomocí zpětného lomítka, jako v příkladech "test\'smetric\"s\"" a testbackslash\\*.

Pokud chcete dále přizpůsobit výchozí cíle a měnit vlastnosti, jako je frekvence sběru nebo popisky, pak tento cíl zakažte nastavením jeho hodnoty na false. Pak vytvořte vlastní úlohu pro cíl, jak je popsáno v tématu Přizpůsobení výstřižků metrik Prometheus ve službě Azure Monitor.

Alias clusteru

Poslední část ID prostředku clusteru se připojí k každé časové řadě, aby bylo možné data jednoznačně identifikovat. Například pokud je ID prostředku /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-name/providers/Microsoft.ContainerService/managedClusters/myclustername, označení clusteru je myclustername. Chcete-li tento popisek clusteru přepsat, aktualizujte nastavení cluster_alias pod prometheus-collector-settings.

Poznámka:

Jsou povoleny pouze alfanumerické znaky. Všechny ostatní znaky jsou nahrazeny znakem _. Pokud povolujete pravidla nahrávání a upozorňování, nezapomeňte použít název aliasu clusteru v parametru názvu clusteru šablony onboardingu pravidel, aby pravidla fungovala.

  prometheus-collector-settings: |-
    cluster_alias = ""

Režim ladění

Pokud chcete zobrazit každou metriku, která je shromažďována pro účely ladění, můžete nakonfigurovat agenta doplňku metrik tak, aby se spustil v režimu ladění, a to aktualizací nastavení enabled na true v rámci nastavení debug-mode.

Varování

Tento režim může mít vliv na výkon a měl by být povolený jen na krátkou dobu pro účely ladění.

Kube-state-metrics

Pokud chcete přepsat výchozí spouštěcí parametry (prostředky, seznam povolených popisků metrik a seznam povolených anotací metrik) nasazení kube-state-metrics (ama-metrics-ksm), které je nainstalované v rámci povolování spravovaného Promethea, použijte ama-metrics-settings-configmap.

Nastavení v konfigurační mapě pro labels_allow_list a annotations_allow_list přepíší parametry nastavené během onboardingu pro ksm-metrics-labels-allow-list a ksm-metrics-annotations-allow-list.

Nastavení v configmap pro prostředky překonají výchozí kolektory nastavené pro nasazení ama-metrics-ksm.

Všimněte si, že níže je konfigurace YAML –

  ksm-config: |-
    resources: 
      secrets: {}
      configmaps: {}
    labels_allow_list: # object name and label names
      pods: 
      - app8
    annotations_allow_list: # object name and annotation names
      namespaces:
      - kube-system
      - default

Poznámka:

Přizpůsobení těchto hodnot může ovlivnit výchozí data shromážděná jako součást úlohy kube-state-metrics a může vést k tomu, že některé řídicí panely nenačítají data.

Odstranění celého oddílu (ksm-config) v konfigurační mapě nastavení vyžaduje nové vytvoření nasazení ama-metrics-ksm. Toto může být provedeno buď odstraněním podu ama-metrics-ksm, nebo spuštěním příkazu kubectl rollout restart deployment/ama-metrics -n kube-system.

Doporučení je přizpůsobit pouze tyto 3 parametry v případě potřeby, nastavení dalších parametrů jako přepsání je nepodporovaný scénář – i když je to možné, je nutné postupovat s opatrností.

Dokumentace OSS pro parametry příkazové řádky kube-state-metrics

Další kroky

Nastavení upozornění na metriky Prometheus
Dotazování metrik Prometheus
Další informace o shromažďování metrik Prometheus