From 4980be13bb523af954cdf5ce1aa8cc22a53448f1 Mon Sep 17 00:00:00 2001 From: Pete Wall <pete.wall@grafana.com> Date: Tue, 26 Nov 2024 14:45:57 -0600 Subject: [PATCH] Update docs and also create rendered output for the integration tests, so it ensures that things are still valid there Signed-off-by: Pete Wall <pete.wall@grafana.com> --- charts/k8s-monitoring/Chart.lock | 2 +- charts/k8s-monitoring/Makefile | 18 +- ...feature-annotation-autodiscovery-1.0.0.tgz | Bin 3895 -> 3895 bytes ...eature-application-observability-1.0.0.tgz | Bin 5344 -> 5344 bytes ...ing-feature-auto-instrumentation-1.0.0.tgz | Bin 14142 -> 14143 bytes ...onitoring-feature-cluster-events-1.0.0.tgz | Bin 1886 -> 1888 bytes ...nitoring-feature-cluster-metrics-1.0.0.tgz | Bin 75128 -> 74758 bytes ...-monitoring-feature-integrations-1.0.0.tgz | Bin 12594 -> 12592 bytes ...k8s-monitoring-feature-node-logs-1.0.0.tgz | Bin 2827 -> 2825 bytes .../k8s-monitoring-feature-pod-logs-1.0.0.tgz | Bin 4157 -> 4157 bytes ...k8s-monitoring-feature-profiling-1.0.0.tgz | Bin 3573 -> 3573 bytes ...ture-prometheus-operator-objects-1.0.0.tgz | Bin 382167 -> 382166 bytes .../auth/bearer-token/alloy-metrics.alloy | 4 +- .../auth/bearer-token/alloy-receiver.alloy | 2 +- .../examples/auth/bearer-token/output.yaml | 126 +- .../auth/embedded-secrets/alloy-metrics.alloy | 2 +- .../auth/embedded-secrets/output.yaml | 120 +- .../auth/external-secrets/alloy-metrics.alloy | 2 +- .../auth/external-secrets/output.yaml | 120 +- .../examples/auth/sigv4/alloy-metrics.alloy | 16 +- .../docs/examples/auth/sigv4/output.yaml | 176 +- .../examples/autoscaling/alloy-metrics.alloy | 14 +- .../docs/examples/autoscaling/output.yaml | 178 +- .../collector-storage/alloy-metrics.alloy | 14 +- .../examples/collector-storage/output.yaml | 208 +- .../examples/extra-rules/alloy-metrics.alloy | 12 +- .../extra-rules/alloy-singleton.alloy | 2 +- .../docs/examples/extra-rules/output.yaml | 244 +- .../default/alloy-metrics.alloy | 2 +- .../default/output.yaml | 48 +- .../prom-annotations/alloy-metrics.alloy | 2 +- .../prom-annotations/output.yaml | 48 +- .../default/alloy-receiver.alloy | 2 +- .../default/output.yaml | 38 +- .../alloy-metrics.alloy | 2 +- .../beyla-metrics-and-traces/output.yaml | 118 +- .../beyla-metrics/alloy-metrics.alloy | 2 +- .../beyla-metrics/output.yaml | 80 +- .../cluster-events/default/output.yaml | 36 +- .../alloy-metrics.alloy | 14 +- .../alloy-singleton.alloy | 2 +- .../control-plane-monitoring/output.yaml | 248 +- .../default/alloy-metrics.alloy | 14 +- .../cluster-metrics/default/output.yaml | 222 +- .../integrations/alloy/alloy-metrics.alloy | 2 +- .../features/integrations/alloy/output.yaml | 48 +- .../cert-manager/alloy-metrics.alloy | 4 +- .../integrations/cert-manager/output.yaml | 52 +- .../integrations/etcd/alloy-metrics.alloy | 4 +- .../features/integrations/etcd/output.yaml | 52 +- .../integrations/mysql/alloy-metrics.alloy | 4 +- .../features/integrations/mysql/output.yaml | 88 +- .../features/node-logs/default/output.yaml | 36 +- .../features/pod-logs/default/output.yaml | 36 +- .../features/profiling/default/output.yaml | 36 +- .../default/alloy-metrics.alloy | 2 +- .../default/output.yaml | 48 +- .../metrics-tuning/alloy-metrics.alloy | 14 +- .../docs/examples/metrics-tuning/output.yaml | 172 +- .../platforms/azure-aks/alloy-metrics.alloy | 12 +- .../platforms/azure-aks/alloy-singleton.alloy | 2 +- .../examples/platforms/azure-aks/output.yaml | 244 +- .../platforms/eks-fargate/alloy-metrics.alloy | 8 +- .../eks-fargate/alloy-singleton.alloy | 2 +- .../platforms/eks-fargate/output.yaml | 218 +- .../gke-autopilot/alloy-metrics.alloy | 8 +- .../gke-autopilot/alloy-singleton.alloy | 2 +- .../platforms/gke-autopilot/output.yaml | 210 +- .../platforms/openshift/alloy-metrics.alloy | 12 +- .../platforms/openshift/alloy-singleton.alloy | 2 +- .../examples/platforms/openshift/output.yaml | 310 +- .../alloy-metrics.alloy | 14 +- .../private-image-registries/output.yaml | 208 +- .../docs/examples/proxies/alloy-metrics.alloy | 12 +- .../examples/proxies/alloy-singleton.alloy | 2 +- .../docs/examples/proxies/output.yaml | 316 +- .../remote-config/alloy-metrics.alloy | 2 +- .../docs/examples/remote-config/output.yaml | 50 +- .../integration/auth/.rendered/output.yaml | 1850 ++++++++ .../.rendered/output.yaml | 1174 +++++ .../auto-instrumentation/README.md | 4 + .../cluster-monitoring/.rendered/output.yaml | 4137 +++++++++++++++++ .../.rendered/output.yaml | 3687 +++++++++++++++ .../.rendered/output.yaml | 683 +++ .../integration-mysql/.rendered/output.yaml | 957 ++++ .../profiling/.rendered/output.yaml | 1108 +++++ 86 files changed, 15790 insertions(+), 2180 deletions(-) create mode 100644 charts/k8s-monitoring/tests/integration/auth/.rendered/output.yaml create mode 100644 charts/k8s-monitoring/tests/integration/auto-instrumentation/.rendered/output.yaml create mode 100644 charts/k8s-monitoring/tests/integration/auto-instrumentation/README.md create mode 100644 charts/k8s-monitoring/tests/integration/cluster-monitoring/.rendered/output.yaml create mode 100644 charts/k8s-monitoring/tests/integration/control-plane-monitoring/.rendered/output.yaml create mode 100644 charts/k8s-monitoring/tests/integration/integration-cert-manager/.rendered/output.yaml create mode 100644 charts/k8s-monitoring/tests/integration/integration-mysql/.rendered/output.yaml create mode 100644 charts/k8s-monitoring/tests/integration/profiling/.rendered/output.yaml diff --git a/charts/k8s-monitoring/Chart.lock b/charts/k8s-monitoring/Chart.lock index c7b76a2cc..92575faee 100644 --- a/charts/k8s-monitoring/Chart.lock +++ b/charts/k8s-monitoring/Chart.lock @@ -45,4 +45,4 @@ dependencies: repository: https://grafana.github.io/helm-charts version: 0.10.0 digest: sha256:5805f8a2eb47cc7ed65d2f8b94d07a3bf474143d179bf781be69c5f7ce1a4d00 -generated: "2024-11-26T10:43:19.397726-06:00" +generated: "2024-11-26T14:43:42.607469-06:00" diff --git a/charts/k8s-monitoring/Makefile b/charts/k8s-monitoring/Makefile index da521f9b8..28e278612 100644 --- a/charts/k8s-monitoring/Makefile +++ b/charts/k8s-monitoring/Makefile @@ -75,12 +75,15 @@ else endif # Example targets -EXAMPLE_RELEASE_NAME=ko +EXAMPLE_RELEASE_NAME=k8smon EXAMPLE_VALUES_FILES = $(shell find docs/examples -name values.yaml) EXAMPLE_OUTPUT_FILES = $(EXAMPLE_VALUES_FILES:values.yaml=output.yaml) EXAMPLE_ALLOY_FILES = $(foreach file,$(EXAMPLE_VALUES_FILES),$(call alloy_configs, $(file))) EXAMPLE_README_FILES = $(EXAMPLE_VALUES_FILES:values.yaml=README.md) +INTEGRATION_TEST_VALUES_FILES = $(shell find tests/integration -name values.yaml) +INTEGRATION_TEST_OUTPUT_FILES = $(INTEGRATION_TEST_VALUES_FILES:values.yaml=.rendered/output.yaml) + alloy_configs = $(shell \ DIR="$(shell dirname $(1))/" yq e 'with_entries(select(.key == "alloy-*")) | select(.[].enabled == true) | to_entries | env(DIR) + .[].key + ".alloy"' $(1) \ ) @@ -94,6 +97,10 @@ Chart.lock: Chart.yaml %/output.yaml: %/values.yaml Chart.yaml Chart.lock values.yaml values.schema.json templates/destinations/_destination_types.tpl $(DESTINATION_VALUES_FILES) $(CHART_TEMPLATE_FILES) $(CHART_YAML_FILES) alloyModules/LICENSE $(ALLOY_MODULE_FILES) helm template $(EXAMPLE_RELEASE_NAME) . -f $< > $@ +%/.rendered/output.yaml: %/values.yaml Chart.yaml Chart.lock values.yaml values.schema.json templates/destinations/_destination_types.tpl $(DESTINATION_VALUES_FILES) $(CHART_TEMPLATE_FILES) $(CHART_YAML_FILES) alloyModules/LICENSE $(ALLOY_MODULE_FILES) + mkdir -p $(dir $@) + helm template $(EXAMPLE_RELEASE_NAME) . -f $< > $@ + %/alloy-logs.alloy: %/output.yaml yq 'select(.kind=="ConfigMap" and .metadata.name=="$(EXAMPLE_RELEASE_NAME)-alloy-logs") | .data["config.alloy"]' $< > $@ @@ -138,18 +145,21 @@ else docker run --platform linux/amd64 --rm --volume $(shell pwd):/src shellspec/shellspec -c /src/tests/example-checks -s /bin/sh endif +.PHONY: integration-test-checks +integration-test-checks: $(INTEGRATION_TEST_OUTPUT_FILES) + .PHONY: clean clean: rm -f README.md values.schema.json $(UPDATECLI_FILES) templates/destinations/_destination_types.tpl schema-mods/destination-list.json $(DESTINATION_SCHEMA_FILES) $(DESTINATION_DOCS_FILES) - rm -f $(EXAMPLE_OUTPUT_FILES) $(EXAMPLE_ALLOY_FILES) $(EXAMPLE_README_FILES) + rm -f $(EXAMPLE_OUTPUT_FILES) $(EXAMPLE_ALLOY_FILES) $(EXAMPLE_README_FILES) $(INTEGRATION_TEST_OUTPUT_FILES) # Build targets .PHONY: build -build: README.md alloyModules/LICENSE values.schema.json templates/destinations/_destination_types.tpl $(DESTINATION_DOCS_FILES) $(UPDATECLI_FILES) examples +build: README.md alloyModules/LICENSE values.schema.json templates/destinations/_destination_types.tpl $(DESTINATION_DOCS_FILES) $(UPDATECLI_FILES) examples integration-test-checks # Test targets .PHONY: test unittest lint-helm lint-configs -test: unittest lint-helm lint-configs example-checks +test: unittest lint-helm lint-configs integration-test-checks example-checks lint-configs: $(EXAMPLE_ALLOY_FILES) ../../scripts/lint-alloy.sh $(EXAMPLE_ALLOY_FILES) rm -rf data-alloy # Clean up the data-alloy directory, which is created by lint-alloy.sh when it runs Alloy. diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-annotation-autodiscovery-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-annotation-autodiscovery-1.0.0.tgz index 4cf14e635e115191575e722daeed4416db11837e..03d25bcd4c81507a32ad1ffadc8df56560913c83 100644 GIT binary patch delta 3857 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 T`2PR^01E&AT-Mgh0Ac_D9?GHx delta 3857 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 T82=vt01E&AVZz9`0Ac_DZp6MF diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-application-observability-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-application-observability-1.0.0.tgz index ec23f7b2ce074444314a46b80690b02c71334fa8..ef75be977a8d84dadfc89baaf729d39d0c0ca1f8 100644 GIT binary patch delta 5252 zcmV-~6npF7Dc~uPO@F;k7RV1LCp~@qPSXZyZVTKbFu2m}u4+kCNy>@q_`6?_)cdj0 zKD@EpWr4;kku$^LaArsjM^{gI&!>SaD072lZ-GQa40|LDJ=Z3}r9qF*IkIaqcRg3! z^k1$B6V?s!y|22K!C)|$PA2N#!C+AScQ73dz8X$0M#IT?IDfvl_-Zg3O)sWj!JspS z9ZJLnVP6e)##QdzBPk?we?`V!8qDB&WRNgSe-5pIH833HHgiLv9(_l|3K@r-cz{C$ zF<e`|UI`KMS-;Q7M{DVdRWy${GMfeh17X?J?=KlykbtEB`os<TVKnz#yYKqT<oTt9 zXYuQ$Au9;t27k!-%;*97#PwznqCo2-@w|V<4J2>_ARs>KxALW-e{L$`2B#6TQQ=E^ zq<d57LJ8~&J-;s)qVAI|rwQ-3BfBoL`_SXR<^1=kebpI9+x#C5FDmnYdYu0UDGr7h zI2hP2@)^AQU^wm)xtIZ8k<s~dHl2)}^U3&PIGBu{O@DDTbe;{SXwQe|^O5~*N}SQf z)5U0DFYF0foR8<j(R@A~OrOo2r|08~(bQOCfQ$%qW?+s6qe*Y@tT#G;I~>m@)7fxf zjmMMWvr%twJ{t_ogNy&)zHB`IuZb5S-^c-Ing18#;ixqK$HU3+IR6h(dcB_UHS~J$ z6Y&w~HGeYZI%s?i|KeyX``+upcWMrMz)=V{SaM}pe~#<Uz%&gF<J-vdlnw3-Xc2i{ z6&OPs-D_p?0hTPZ<-Y(Jkhv!n$%1$s)uWIyF@wo?c%go}f$c>OUOG6BmX|&X=Gr`~ zFRghysHa^({pp5RZqNek*<?6u2WEtf+Q>Og`hTnZi<cgaoL6y81?20Dg92eixd1m< zP>8|7f>9p?dMF><D8K9sB90EY0ldh0Y(M8Gw0!xUMhOb16(h@!+v|+NVrBSVlJP^Z zphZpy7NKDP%!#m9Ir4v75uqOfcmG5XR8n{*iJ0FA<Sn@WEnBKOvh@sx)A7?u2L0^{ zA%6-(WZ=2JD}XLQtPqG#qd@(VJOSyCN{>?Ug#dShrH7iRj1UWcTVWstRnj;()9;ak zO#+xBkl;qq(8jHdVxN5aMG-y72>zaa1dj$wnB#&n1df5@21_`}K%90)AY315BxW$; zlJ!?lIT3=n^GIM`g8m!Lkp(D_OUWUMC4YhfeiDq>0!ZKhaUA(b@h%0Ca5J8qPD#|- z81dhy9A2crG)H3enmB--q}h_{fQQ6J^;h9lNS*3K2SbnE_;Q6&dB+72xQINCH7^~4 zJ`HML*^CCi(|Pqp?ZbdN4a7#SQ+X!sjkuJ9Wz-IeN9O49FEk_?xpD++i6cQkg@4i_ zUy8yU1qqox`jp-LD5pHKoTUE`M<DTAtr3v5VSJ@)$H1D@dpddPLSP`fZLiS2N^nJ- zEL$~04JHNThd@Z}?9E`vGi0yGC)bbsoGy!T3Br~rQ1M>sCC{U_bhlxCqc|TM7g!+) zw;)NeZ3cr^?!OJg&&*L#)5k<gBY$%P1QxC*kV%RX+mw#~wM!IPKfnF)HBhGi{r>IS z*N_^0OMyFi=TMt}I7wIF*+RcB-}GfqZ~7h)$VH#w0vQH2_HF8iG{8XcJ{9QM)Jy)g zQafvD0{f>@x$3`T4XNo>f+c@S84al$i1<mNmx7UiFDUc1ReiX<O$pT<PJe&KeP*aP zJknmTWrE?+<t7p!s}~vaAO_l_%S(nfWlp!Dt#;$VkE`m@n|N@`U1E`k+^Qdc)$m8U zT+_y*%VKrudU-Banklnj(tUCR#VU_3feVJjw~Cg=w7rN6Wab%|sqL3Pey4N!Pe>i} zgJDQRgPRDRZt&2?tWh9&NPmKqrSb<}V^_WNFuS^`+F8Q^xr}s|0cB`tckcy%NrQ#E zd_}^<E`RBj^y4hs?*DLmg+8%<=QL==v3~z&cs`nrOZz{Q$#8t!|2agtRkO`}qQ}#m zfvGl0`h7XFy?B%<TlV#zUz=yTfw&1#)~55{(H6<mkkJsCaFLrcxPOh8J^*HA(iUD9 z0M04(kOXG>_U<f$Q{FCW2E&Dv=Xxm8mN&O7^eBDX(6jV?Y?NwWuJ2zBg;{^Kg=mLb zOLSM_(|Vaxw6<OWGhvL}RC|;5s`gFwX<hF#i*YapD5qr8&etPNE4u>M^q>}QS$gYA zJ!hewmnjC1F84RKYk%-0*8T8;WYqu4D}Z>NcGLki_0rYeLBvFl#NSlgJZ@G$*2%xS z|B#*6>|2AVLxw|%Uwk0ZeURKh;1bz(GQkgrDn1D5j;+ny?xI#|j`I#Rz-{)Zg0|5v zHFvrGX&oa9=TV1ZLGHBRAewJG2Xb3|u1?P$y|=o9OchRk4u2(6g;Sb6Dw#E7eGfBv zoe)cYegW;-!FZ?pm;1K7OBOc!Mh{;vuNlqS*pma{4k_C}klKy@4ys}$M0MAxLc(!? zH^cpa23SXA9fx?|xWCj8cd!Qf-0QfFQ&W$Jq<Jn>aPHuSrU!L@(@mWH?{%~=`>#H# zP4nK+|GzsP^ndQNY<&JJ&<|BSK>yOFL4dZP>~cl9xO9UBwM1CG7SIy^KO9cW_x~=Y z7svSjgOuCb{y*V|AdCc`!LRCUA5Qcc|7jA>_H!h{NSx`&{(tuG?hMsxk3l1;Bw48> z^%G1zaB$%U2xcstR!%qzq3m^FEJci^qa;nZyIX_Ox_`X|6~_yoB~B7~0?hai+0=3+ zpCm;XIIuV3Bxqv|Szxx%Whxb|>pK_-ci|%A@EqQ$UAHVg*#s3YOVxP7t)kyusOVj* zFxFscQAnOzu}>r^g)~A?qL8E&o5p;JS)^5V_TWp)`>_<uF8Y6kUWkm>>im3Z)BhLe zW&M9XI)C2(K1`9C+<3{52n3R9mqp}xH}FS9JgG|@rTH!6Hw3|=z*cnyOvhla2;(qE zn?xLeQy=q}1(eEKxac_?2*Wr8KfWd4ayW@Y)W7-Z7g^U0mcT=_Pc7qz1u*oGaMVEJ zD?3~v6#AJf;G^q#Fh_mKiEto_@R-`o%|{YlWPd_0Zt5;lO;`>+O7vXg`_GzLl1=hY z*Z(D2EZk3E_DuK;9{q?c)s-Gk;XP5En>|m*!qPXc)&0B#SqV`An7hc>rGZ&*G%q!b zgzmz_Er|`88;Av%|KPoUaI*ySNw6v8%&J!ZEDR+EOV8!2OV8!X0wx{DKj6f}0IX9O z6o2R~z8j`Z0tY{VwYKu8uClV3x3}rDVeL?QgbO*8Nv#te%`+lS(|QbbJ?^<SDhv%Z zf2VE$<{6lAo4dQSgc6Ock$p|`e;57lQz!B;@vxeWKui3mRQ)CWKOId*NBw_@vXO$+ z1D;N}C$Z!A6Mj<SYi4gex~zMgY?ge3B7eStq-KZO-0Xlqi!Dz8ISHVWpYOPKIvJi^ zJ>}UYvTZRIj<45Yt2yxB3}^c)rhqTq^4hj%DS&lY;(HZaqR_3^!Pj?!w*;>muY+DV zC*Br|26CBPB&<j0pzTRt$IJn|END=@S|e;3`51^a81d3UF5DoFRfsp;Z0f5@&ws&u z6>*_1_@&oul0{g)A$(jRlm3$Dp)Gx_q!M4z$a5rs1!W%zbCe%us`Xic96570r^Tbo z^>nEFQ=N&>8~dA+q1vq{L|18{q~C`($w@QxdjBuGMwMx<^x~uepdGhZ-z84byMOQx zW}VJc%VO<Obd|#7+}onU3zKbw69^@AruGR<coLI93ls<|hb0i&_1T(}Tnie1qQk9L z=};r3xzxY}#h|yTt*9_ZBS>tvnov2@lCq_NiG`Y_l~WcjY1P=q;?`2zD8JP=-DF?V z%oFf3F_<-dc@88Dr4O8cSZkwm{&FwtZUI!W(<k|tpEKY5bSD|A@iXp0esYvoq-eL{ zs~HwGTq;jR*Ey-Zfi3vBW|MUbGai<?Qe259OT-<L3?6^3MX=o%6?S{K75kDCdMK57 z-$Pj*vI9<qdhh#ij4kfm)GL&NUtUoqB|a(MRZ>(`7NQjn7M=f0wWn*;&Mnp$gKC?~ ztgGwJH#t|ezB6Xx6<c)+1xp>(nf1NOnpT|pYP&+;vX(WTc&_bUrhabqwt;l!xl|O= zlmq)Qdh35>v?z~%g)!ZJAnO*$Uu;BkqS?HU+}b(ShgWLbi%afw*in64WtaWmfJzs& z?ewqp{BJy-l+XVr7t>?>$3e<Qvq2AdmT;{+B{rK|vG@>vmERyvc3qN1XmvfA<uF;Y z(9UV(5`=8&mpwC8DwO4$*Dp2c`IC}b6e}UZZBT!F|Mu<cjws@NlFg9(ua0)EU`Xry zMwz3Sh(W&LX9&HB5ih$+VdigDNH99dcO}QS$||Fdykg5xJcP^PxVuvaQUyxZ9OiWt z6k^BwfOmI>&La^qgc}+aNR87D1?5b0An2^KAQ?KiY1Z%G-h%Z~?;TQR{etY;wJ|<M zwTgc)e@b!}$yfZ^w&J`-mPc*k&1B_zydh;$%;6-J%~NA@$vha%3U85SDeRqSu88`< zsE#qGbnE$3CVDIJ<dN?ac9TU7+`ks1!VA@nrF&Ci5`(%jbB{Xg&l(+;ro&f5t|A}e z4-&|?A)|uY)Z?>)hT+-vTX|XXrS0oOFS~#Ef2rqxsh4m~o?u)2*Jv^<$Nvrn7f1i^ z5M`72-)v2G2Kj|pF*0}q&AI*rH;dIR*XtOkyH%KO!@fi=M7LA})>88s{)nhR<r5t^ z^fr$o8@d#}d{hRmPH8pdT#II~c_~N%>xX5~agIU_ywL6#F#H9}e)NC5!`xs1TJ(Sa zWHOnS_5Wyee$@YmDErs{`@I=b$(*{AnJFLGWa^AEI8iFCLHnLiR(Tg+>5P9jzE0CT zot_qP6f|(*VbU~9$X9Aw(y@8!;#Ua>9+F_)J9W$NR7IGoe7gB#3!PZCIW%|s5oovc zam6-MuR-i=>x)NZwZ=X^PwjFUCvSfu?^B+%y-YlU+w$_P0dB#OfamZ|wPPe$Vm{8V z9g19n#q|?6C*6ae!rk3j(XIo0sPQ9Odzm!O9&Ai<0oHC*OZTL~8QNl2YlzD0x=kFg z<W*}g*TCGOkL?}Xx6aYHW52K>ymcUBV%6WR>}de7SD|g{Tb@$=U>kB%P<wwB+2bPQ zxCqJ0e*FJp&{}yJ(Bl7(&dc9_9S_bY$Nb+1DUZkhFUZ(#%Yb!vIqH1TV*SJHKGnv7 z);gwznjJ5TCm(LAnB839OOb-~TVa_A(7&}Z?cDq`2>Smy4Qdp+wvDZz;?IjD)<XV@ zy{DXky*h&@*UG*o6+s;tT)}_cohJFob#8MmZJslt+tQc+Mpg_edvyPl>QpHqbuJ0# z)OPb|<H+hHql@}t;BzqJs9BfBxs2|Tdk{xY;jiu~?8p9>BEL!wK->9Gjs3rv9_{}@ z$^$w7S$nsx&Lo!_9B7-UKEkoqDi^DEG|MWr?4=v$mTfex#gNoOKH7hxrO=;2?FL5I z%{4#j|D*ozsQ;@M-|{A)P5)1arSCtDhm-T;`Ts%6<5~YzWNf!JU|R-(I-^r<bC|VY z<Gs>a%TuY{(fH{4RA&w|F}OC*z~nbvpl^OK0Q8^n;$cO(kPt65F5QN5^TToJ@Tg43 ze)NBKdvA;UkJG`Z690d7am@d6nDTh^fA%@io%DWFwv#%2pVd8#p08Yjt<~?@UHguE zeT>N^I&~19gQ-8GYF2K%)hOYH8d;9z)YRk;qA%4)_to`~G-XF1;yY+*wq(5>mDMbr zj}?;IbR^*RHs5ZybI&y>^QY(?dK`atYft?x9=;!-x20qF4jq5azG}9oK37if_tNcp z4pdzQk1ltU=rZ(1>0Qs5^=&s}N{K%JCP#6SZDGHAZ-&%)Z+<v~!o#bl+zP3qRL*<z z!)cm3z1lwgl6O6n^mP|l9=&qY{>Iz?3ha9`x3N)XP<%{~OUwaxckj&vQ6>~?2FRn! zZc^aU<yPX}fbf5wrM&95)>mlM^y>ZnDf;#3??dxdF=hcL?VVL=`S;V&e3;5%I++Vt z>DE*IU4Z>{w-DyCPpLnyLLbX2^jN-B*=7BoT)(?iN$HyN0JQD@UQ8~^`CrcmljHjT z5M>|h|1H+zwfPJS(fBR*WZUmUCky8Ss{FP0O6*JXeQ<vO`6M=n7&u8BvN^ESe{HwB zr45sc*KD!S&AkD&sj?{r*<I~M3IGZp6^k)AE|;h;SMG9kX%ptS0g(fDSulqI6@@V1 zQrBz0TGm8mZROJ}pyg=EH?`#XKO5)&Ui5!_`+M8_zk|WJa{qUDjQ==DS*!o|rR0m5 zU^hz;QBi;6x=K-zZ=e$Mi6HVyaW^g4h^Jl$uGeZ0MK>JFU%%|4|F4PXI;0ZrQ7LWu ze=;~PfB)wg|97CWkwT9LJog0%@&;|Zc9H$S{}XGb+4J4q_b!GZ)|gWJ){&8ALG<}D z&BJ4wV7?IGA>jgOfRJDSKTal}U=S1{j_@Lv1*?C^46}qHOK~HAnXmQdi!?Zi%7Skx z1N=n%(8F0v>!u-SYX@nEczad7s_9Y>61L1Bm*2Lj#V?525wI&((OjJX$EU&llFC`3 z=l2Ce?EAzG`sxc$yx*#bU_lx9lp#1Mi0kqEfGmjX!HM4Ze;=5NuG1QC{AdAp(Eqkd z!sdUI(7GZ1x*U)#`hRd<$^URZ9USvN9Hf*yah==o1=k7oUXd`>w4L+8W=29?XzBHO z1_|9?le}KnL*vQ~oEfAjjO1?6%m5WhGApDR+~Biq@eP{va8YLw%YT$CNgHP*`10Sd zn!)E@dcCGQ{^YAjR(4b|c{B=U<N0q%eXUf3NV?)^oBxB0^7?-~JkI~a6o=Z};PwiA z((|dq4S`&6;}yBWh3ld5=07jKdG#O5ce1~%B^7??Jz$|emSZ`VV>y=A@_zvU0RR8Q KPAstixBvhyzkUh; delta 5248 zcmV-`6o2dBDc~uPO@F*zCky0<laro4ey3@JG`9tA5*S=*c2~6|swCyab^P5gNb3Dq zX&+JIc3GhDO61INIGh=h!_oC)KJaPa3d-DIHCQ4M5yJrqL(jE|aA`203y$oDEL_hO zx5MXa!i058eDABSWi%R%X49$qcQhK6{~gUHqp!x(%gJ~;nSahEv#&;z$?WptD;Rag zut$lwAndEr-nh!0dmx2`?ytzWOM^MwObil+>Cdq>vPOo3+-7bl)T8f+SR><*6Ay5R zAckwp*J~j{J|7Mld2g*;v5poIM`qJNU?41;`ok3?OA?UuU!S<aFpL(SYY$z2l{~+a z@GO3_GGqlo+<yQWpBn=}pSa!}LKJAdC!Y7OxPb(200hKG{Z_s-^v`WY+~71~HY$8c zk92PeT_}NFqvsC=L)3k;<uu{Lc4Rk2cK1F0JI;TP+Si?Nw9Ws?__8wpXUF;9OK~v7 zz`?+Fk<a1HJHv5T$i*D^noKTc^V#&=xtN|`jz`nUlYbdb#?F(`4DH4EVllCw%!o6& ze7u~D?4>;=%Zu~Hc(Pc`Mzbdi=kdk)<z!~8FhE8GI&&~5qseqIdNP<?ydIy=r?dHZ zWSyT+$4@4M(Zzf;GJ6;QzkS(y{@)NULcWy)&@%ro&&QL}{68O0N5}c!M;QzT#@8?y zz)!?Spno^WnCqbNHT;XCt?c_?0N<%O>;Xq1++f9(Vf{I-I|tJ=G>mT}&r>$IGoWSU zc~xKxZFFyx$p=`m(3bxKU_ch0R3uB{aa4~&%ETO|=i^KD(+zAda`4K*MYOu|Q83r$ zS$%2E+d)0<0_smUymo^YU{9vwaXT<0WYk8^X@AmR<zGDaXym+zYbqdLXB-p=Ysv+< z!IDA@4wj7iAkahk;8yu%XAp68zzyJ8&SU#IKcVHz?=(tKIIS32e%xMW6c#JP_mYes zf+a0-La+!817Jafz0Q&U+nNad5V-p%f}oPZGfBkaRv>S|{cqV))sd~|FrJ-1o@UTr zuYVDuFhmBP>$?Kz62uyT_%sUCFUb>-{;2dQ6<-K&H&}V7iOLAE;I}mfQcxw0qci;; zIoKqC1p*0f6%B3N$|&~9hhG%Yqm1D1>3i^Ku!03HDMR2GIBu|llMKXZX9U9akw#(; z6E0bQ{g@LWn7fDs<|XLA(E?e30=bkNqJLN-DBuUdh%JBw4iLwYj}-4x5D7Qq$?23t zt&I`?eazum3QTh(Mz4tj7)Y8esSbEZY*c?0UWL@DK6Ehj=&dhT7?pQi5P{3c<5=_3 zA?VYf_La?O@H<^pU(`MfsMA1f<T{mS(%y(GIao&Rpm=0~9{)^3qLC{{u$DLy1b<X0 zE%Lc2%u$e#>7!5C?T>QGBg;wp|8N8nzttK6SsTU|x^@h#Nxi3&mo5bcvfK6=?dt?r z#L22vGt^*GKz;~>)Xv@<#ymszf_!lO$j|Ar7?&Vyg#s1trC#zpYD;$;7PpG?v2lSl zl5hu-6x-%7dg1=tF#OCM6*YZKq<=Irw?JU&dIFiGD6viH_}{ohk@fTIA727x`rq$g zzkUg+(YF-1lQ#~v`MZ;J1)eSRhw{x(_Vjk>5rJF`87`4wVB^rHen<lh1Rqj?o=v^v zUn{k<mL_m`DwV7LJJyhzUL{!ar<Bo<x`BwF6nZHb3HXvSUt85Lx3?*wx_`sz&$!PF z^@c~<>y1n>Ji6LO0%Y|fL%xWC_UP)0p-q|7ZD_0A_~OS^_2^YRxaBUf$U|<`kH2d8 zBVBE1<Iz>Ix^%rfmn+SbSup87xq)JpM_0fFL*iRSOJmwz#04_*49wK_%OAhfh5RR^ zj`_|oq@lrW1Wz~k(#EV&Ab)vCf|RB52i{;;z4K*ubz8Nwfdg_G>8=9G(9rJQGya?g zOLz5xgo$1L+$-saS$5t3;r1GRV*So((28U8{?GVgGCMEr|4gUj$#MUuk8-DGoB2qO zr#S~xZITR!a%2bbC{wl?>Oa3W&vXNE8=|aD7r&z|lBXe~Au{12H-G1F7cYGP%*v!K zye<G-Q0gHG%=GR3Sq7)PUDOPQ3n|a_P^2wyZdvG2`nI8G>HF9y)xO-^zZwd&{%Q-+ z4z-r(uEeMHGN))`y#i*!7`d(XChb-2o9ffL-e(r0HwGxDWZTZyBTXy20yp%a7H(O3 z>q<Rmp`Mp129K@|H-EMp@Fdo~e?c<pf8`ZGyiPmnfSP*gYOfbD(IfFU)iw{C)em*@ z@9#fk=QW4cAnK5zFY${HB)Sih8wgw>+f62Tf2iVvknY&p%<VpErRF%VuK{keM-{Y< zcB#3`^-t><Q8<t4iv_vUf?hP=ZVu$G`dpo!J$P?*51A^Q{D1T%Q-xES11gyfWBmzc z@+Kjc{QL~svxD(Y_b(4^c~>lK_Km)Ly}V&GYhzD(!W~k!g&?&X{XJC0T8QedQ-y@% z0B?u;3mRY@k#!v6L*xEjL)^g{=yR{*Hcm}F9+Kv{P{Fx}8=4-}{Y^J<4!_sY!tB5L zs5Z@eL;wH&cz@7)$g=hMuRuRk@c_dsn+5^eg0ibM<>JZ>medkq^;$qn{Qr17E8qXS zoLwH{|9dHScf)_e4?!3SK8Ih`**=`;Gyc;gp6%yIgpoMYk^TQ1-rpOl)d7P>Qc1E> zNg5`Y2H@b*4G_#&IIWy;7DCzUz*veHOGinXaDTr6rGIsI2P%#iK1!S<@&uUiAF`?C zN<K-7FmT{t#7WS`2C~3xq03Y%TGw|l5bn}N#^EWvQM+zge6k5DUY4ryggZsQyHwG; zR$;8c(xQ+&wPK%0QVMB=phO`_D>jY!60=CF?CinkmiJ>RmVNa98odx1uhsea(x(3} zFUtD=Vt;bH|J_fKn%sEKkO%~lYL{i?dAIOKL_DcW9Hsd!<2MAsqQF*l1<cODUK7S) zfi{Ua0;fLaFAFG@wRF*QI1q+$2!4D^z~yifhp2z^(=W2F8?1nbXrEff4@+R^A>pWj z#8-B>LMZezSHOGM^I(Dck`v)T6yY(o+nbLhx_`)oLEO|`rkb!EdX(t7#`hmJvm~43 zpRWH)v|PF$z#N$H5j^@HS*j~Np2B;iIyZlsj)kRfT&w$e39=HR0x)-(u}cH9UTI!x z7zy2lhdUA*GB*%QF#o{^|KMf`=A&R+$eC5G{#h7G3|5}Y*H@m)l?6;Xj(@<3hXGip zFn=o0TYNW8n*<Ji0Bd9ANnK@SGw<%wXXDzT^avMnD3e+zJX&N#oTl{{>U!LBZB!T< zYW_~$0L(Km<2LvAX9*=5StI+J=KntW-=|LGVd7ym8-bSiPpSG#`hPZ=j*t4kkFu45 z)B~PQxJR+$_Y;0l;%jDaJi4lToNShSgMT8vfuv@K+T84bKZ`9-067VulArImb~+gz zT|eg8C9+*H7LKnsVXHat-wtQ{DyD!h-SXPCXDNV9SmJvXJEG97H^J9;f_DV38gGJL zI49l}iw1I)TqLYV=b-ILU&qV=yeeo=y;>t|75Ny5G#K&9K`z`Nj#Y>^-E8WsN`Ftm zd=YV>F8HO_Y?4J-z9GC{Ba{A;=b<fqt)voP)5voqfF)(`33HSmW~%jBfgCw=x2MIU ztIc$%`%|5X&>Q>PlcCyeCPY_hp=3COSIJ2;3<m!%yGE61uJq!h0iYeXSl=a1(VKtp zcV?Z=Q_EuQQFN8U<lNh$!V8magC!Fsbf)$RO?VW0hp9;E1-Thhrbf2(Nb|Y)@Dx5O zhb0i&_1T$|TMHV0p~J0KsjrdJTxwu~V$kc<R#cdy5hONSO{kn{N!ilC#6r!|$|(z% zv}$Z)acik<lwa$cZn7_F<_UP77|fc!JOvVl(g)5zthLcOe|eB~w*acx>684+kC|_N zx|a;q_!*x-esYvoq-ek4s~HwGTq;jR*Ey-ZfgSj`VUu+WJ06y~Qe259OT;~s{|g>} zZbY!#7!`JVcNP1R6WW)`{M18P9<m;%LcRChA7hI<H}wjo;FniaNr_L2ca;<sm4#@9 zgGJ{*Q|;**wR4LN#-Q4!GVAKP^G(iGt?!JPc*R!TLcvl;b!L69vZfWMzS^$Px2$E2 zC!TA2kg1<ry=@_#c`g-&H08iyjNWE{87<1=UtvslAIQ1|@@E^-oM<-hBe!-=_2Gru z_TrK|9d=Y7R@rC&H=xo*Z9DyIJ^wpDpO(-6rkAs0{6{ZktJ$CjJWIG%o)X*5typ{r zzs_$EC%Z1mBDA`m%yO8lSZL=oatT7V^vj-^DizA=)ywCa^!!OlEsC`e;VvkDzJLAt zWk(e8KFM}S{#QpkS1_b?exuA$OvE7H@FRp?#E6$&r7-iiDkK=4<hzpNTV<6|M_#dI zC?3M)aNOUk1E~Tf8xHe23JS5~eZc#BL+6o*7{V=$3Z%wqhk|mZIS_Q-S&$4J+%z8! z@9w~QuJ;ZpvwlH#<JuS>qgusRmp>)Bi{vYQV_R`vBg>;U@#eB}J>HNqDdupJ%I2xD zy=3-Av%*`XSqgh6nk%B-8`Ux9lx{tL%0%xZo;>n>!fvyuflsf+sPIB{W9gGAF^NH4 znfZj1@eLS%^MZ!q+4fs`S@OB<>z7{k@&8iK|4J|6nmoa__^-)yT#o-8jb=yxuaB}# z{BO1<JA?c}tQZ-*h34FRf}6$amg{wl)7>ddw_#r*7ouCL0UN3L2!BLWpz?`&4!zBz z$c8S3FCUeGt5aGHIoF~YY+edd!1`esbeyA51243HI|dAY#&Q__AMY?X7=RZ2Kb=lz zW&J;yOpp4%k8*hZf7qKLmCUJonVIr|O{UH$gA=9F8no{TWtDgFmCpEg<Lfld)9Gmu zM?nJ@9wtq*gnXr@B^{fmE`F7O;2{Y%y;HaRPE~}d%BPz@w$O=Hn?rMVAAxpDA6INM z^%}%~-nPDYL{@9;<MY%mmvQnY@>9x_wwH-Va93WQHNY)667Uq>sCJA5E6m6FwL_6h zu(*EW=A?V@Gq}G$E82B{cQt-QYcG?=*@LY~F2LH4YU!RdI72(kY7J3&U3ZBCmb_~1 z<p!8L^s&8Tht@e7ckCBdgtrc4Osx95l|2oA01hg&O?}H#svqn^ZVKw4B70nf92X&3 zIgI~b3|cEM16ut5$wm45ujiwS=`sIzFXiF*{{<P_ZyB)ZE=Qd&TCCsC?o(|XXsu&f zsM+zdc=F+<irLKtz7#1)zZI650R3Al)6UI5f}sDO)1XG7YunfgD*n7kVlCva*n7%< z8QAMHcyy!eYf=%^k-;_G-)oW|-Q+gs(&jlMx+{J8Z)C-wvPYkuQk^O#q|O!LoZ4<4 zZ5&yhWOPwq415Y^95w6GIG53Vau4F@Dg4zvg~QnYQsh_30cbn_sj>f;v!ng*rF<dh zKO67X)tTf{gPyjD>LVO$t#YwyN3*PdQp;Ysac<d0(^?EkE##vuS_=Ic)NWvO-CXmd z{y*yfj{3iP@hxux+VuZyT>Adg`FMJ9Jpb>dJe>7kMaK491GZ%ls53g%HvOyx8}F6Y zTAoVnj>bpVr#f?(iNTF|1}4Ad0)6wH0igek7Y}R7g@kyeap^Xco9~WGhX-YUIu4`% zv)g++<bRxvCYAWF%VYkRe#*nq|Jmn6_tN`K*-q;8eO9+0Jzu#5TdUu*yY?OT`WTZ- zbm|~H1yg@U)vVljt5L!YHL@Jbsj0~yL|>_o?yKt|Y08d3#COorY{_~%DyvyKA1fra z=}5rcUB2CZ=bjr-=1<W(^f>;1?AC$$TReR4p|_=D_zoS;zG`-$K37if57O;=4pdzQ zkFNHU=rZ(1>D|nj&26`1N{K%JCP#6SZDGH8YlhT$YrZ>!!o%yw+zP3qRL)!T-D#RT zz1lwgl6O6n^mP|l9=&$c{>Iz?3hY}mx3N)XP<%{~OUwcH_ixPvQ6?0B8wSXut8P-@ z(bZ1k-hl8EOL^6At*_9i>DBvBr|37M{}h_9iZKf~Y45B`%YT@T=EGF_>0~ZorCU$+ zcL5I9-9nhlA*KGf3VkT6&|~>rWuNtba{cZ~C8cZ51JJhrdpW%<=YPEzogdf#eUwA2 z|94oA*XA=UMB}&IlWo6$51lNW3#jtf-Yc;$&G*3p<dfJOV&Eik$mYmW|FzxjmNrZ( zUbDqQH}?kArpmSyWOub2DF7&ZR4m5exLl&XTDz<Dl}(uA21E|rRlytvR20I1OI@%1 zYFQJNwUtk^fR>{r-`0}n|7@K92hsoW?eAUh|BgoImHWTrWBf;dFJ+_tKa`R$W`f-= zK}1E3>ncS>zJ*H6CxXZ;#r?EkBc6I4xLK=xDZ1fU{`zGf{eMF|*CCZ~k4kCN|I^V$ z`TIY|_`jaYRth~H@Z1+5$Sbt*#zpo6|4*!$=1=!`-@6!wSYt}<TSrEg1<~iLG!Kty zg858<hlC5D0YZX*0sJ_be1btxh&aNtTo$Y%Gt3f-EX9rdWxmv(FVf&7Dhs})4DbW- zLl5UIt(%6RtsSHt;_X%Ss-{alNZ2xmTz=c87QY~7N5HOFM+<cV9G?acODboLo<9@} zap)5_7^*Kk@nNeXf+c0(Q-<K6Ag;&r1F|Hp2Pb;t|7~D@D!NW<yz!$2+(ZA{DhZoU zLhF|Jn{q(5=>O40CI7?4Y;?^3&`T+K;ySnEGp-Zty&z$#X*=hG&5VS)&@vbd3=+D( zCV9PX#>TZ9ICDr*7|GqBxdAGYWL`)!xW#AN;u|#S;iAqWmj5VOk~Ypr@a4Z@HHVLb z^m<Kq{K;2ik*w^fV)|ed%+~YYlKNT)k#xn;HvdPL<@Nvh_&ERjDGs%{!R<BrWZ+YW z8v?oD#tU+dOV>l=)qkFS^Ws02?__^jD=PfZ`+|k~SdQgbj^$Wd%l`!c0RR8&I6)== GxBvj*NQVUg diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-auto-instrumentation-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-auto-instrumentation-1.0.0.tgz index e3f7ad5ff0e0ccac2e5bd3cbbb714c87b9444a7e..156d6cdf46652efab422a0d48681c46ed0f9e46d 100644 GIT binary patch delta 9464 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 KyiJ+_J^=t~hL6Gk delta 9463 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 JV{-sL0RZ;$g}?v+ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-events-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-events-1.0.0.tgz index fc9997bc432b436e3171ef9a801a4704cd5841f2..3878cd60343be521589845c35b312341756e9063 100644 GIT binary patch delta 1849 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 delta 1847 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 diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-metrics-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-metrics-1.0.0.tgz index 62c88d71247d5ad864ebd16aebe8b7e6003c39ca..975f1a587b3b56251d9a7e285b527d9cb9693650 100644 GIT binary patch literal 74758 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 M|Gul8wg8F;0OOyaNB{r; literal 75128 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 SKmQ8=0RR8^iL<5viU$BQ6)2$q diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-integrations-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-integrations-1.0.0.tgz index 6a1e4e22430d9785bee604a4499f4fc560d14520..00e52b9cda43b11a2a14c71f2c22f23e684ec3a2 100644 GIT binary patch delta 11916 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 SKmRWP0RR88a0RXaQ~>~Jl~w5g delta 11948 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 diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-node-logs-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-node-logs-1.0.0.tgz index c00dd83be9469f4726c913bd5b865d192460274d..ca01dbc82fe742df660bdc2cc68ec497da6c7d04 100644 GIT binary patch delta 2201 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 b#q7pz?8a{VJH~$l00960Gj-7{06qW!zC=5b delta 2203 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 diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-pod-logs-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-pod-logs-1.0.0.tgz index b4f4f455f456a00cf2f9039f5d9eb6d5fb89c520..416e2d9dc1470c5a3de741a696d484e701705534 100644 GIT binary patch delta 4076 zcmV<I4-@dcAiW@vP76EX)Nh(e+IR1+Ns(DCe-DpUClj1%At|49#z=G_v6G9m!^A{| z&!$A`;EH7Io1Ie>MbXJ%VE;x@)czYCN2lL(2dBO6px^DEo_-T`PkV#YZy?&8<=s=E zG?Cv#pUkUWxi2J<oc@MVQNd%l=y@d1>&I>o1(BDcN+iv-&HC?Rgp#911+PX5<pmj0 ze@68cl>G+ALc)aTDVp8{zlan}FABVjP_7B(C{^rr05d{a3^{5HE(v2lOe7f-PJ%>a z9snm9y0_+~=N>ooR8NUQCTPh|wa!%>h7+o%#mEp1O9o+!$`n}^YKa&c3B$znb`>tr z)>k>kK=Pc?gcwzL7xP;BtDAA>bhq)(e?;<OcOIL@f3LeZ{`>v?_`i>oVvamTo={XV zynW}Tbb?C9pr)jEd=j4w`swkYf7*=(y(cHw>!wel6HG?k<54epazfJH>Em%PO2)~6 zjF0=HZf`U?iB6u3(#OaB)82_UL5`AWOk?nSQE$+R9(Q_=f9)Q}(UZ7;8uSOJe^IyF ziH_qa^1s}1^rfav<Nt!N0@bGhfDPln-;1L5_#d2}?8pCoq)w;fJ%COJUXlz!T%eRR zMehOppfE8roq6|nJBAr3)SB{%vNQ6lvTO{#?>QPj6^z-*`_6>M1!IfECQOV7i#-5K z_SY$b$}yp1nn2Eo9t)XSsG+A+e?h_urBMd(Ps$h|CnJWCh%6_XR`5hfP$I+nYZbto zBF}}?n1ZnAM#XS|S+1`RK}hgLj$BRYSo?vMW3C!jK6q2r0&2PqWf-Y5)Kigy79}Wx zyh23q$}t5Z5&R3miVT&11pbE_Vm-~N$#|6`e`5rB=IZ&gnEWK<C6Osge;*F;V~&z$ z$TeYyK}+8TfIX)wG0k!1IT>D9nPMn;meRiB><SW+TNGy`gs~Kvkyiobpr@$NHm%A@ zf(j0PfBWut$dH&Sl&$VwZ4hEs&`vjw`*Q(Y=q3CKzgj87dOr9uVMU5Bm$7?YFjS^h z#*}H-D$4c|CMGlZ8aSmCe+pCkvTh~YKjz!1YG2pj8%5KS)Q?t}M!)%4On{LQGAp4% z4VP3;!5LymL{5!7Mmc(lO+;?dw*Ans|4GP<=oo(go{7oO=Kn2*?`L9{dB3-1HT-{( zB0;4npLmX<8H*&(hmFsv7&>51@;sR32ULV6|8vxaa4xjP+jp$ef9!*e^=i;Im3uEn zc8L)*RwAJtsqe+8tjilsCI}+~hHY&|2qaC>j&CD96CY@hI~LXe365ObzEh8T?*SaV zO+}*K9n`Co21oNIB#eoxkP(eahZ4sqktZ0|6jf+Ag-v$h11Hwuq4xlOHCEAT7^nh` znXyiof-+(f4OgOoe}r(bq>b>x_T92g%Eq9|j1JtOMcb8s7L!?)RZ`ubf1ndCBzh_4 zOk6!x&jcUS$qSOlFeXgl9`OCe>5lkMB~#2u@LmbNJ&z6euQxau%;Udabb7q^|J+Nu z_5c9<hpvJB7<^-v;xIH#-6@-0$VupaKJbs+2l^^UQ(BDPe`BJn++2zrrKYI-7#wMv z-!QgwFIJPP->x88zke@AOJB^9R@(G#f1%K=xBTgLCWOCWx>na<Bm_gk{iSpk0Lf}P zL`rhCipm0ZSWTy0?FB+hEcb5I+BkkUDoud8kwUAVATKgMhPR77qz2cEujWDA-1~RS zCA7%@bNAtDfA#R^c4P;`KDX@4QQ@CklTYtye1}o!xqolJD$KHJ{;$xZ3Wp@8frX}l z&bM*~ZH)g6x~=)Y7oF_=KlhTZuRD<9m~sTaZ2TY>>Ca}ZGG`rK)BA9H>!sE7(<lMH zSw#DGEJ?u-&TNkF83uF=!EX*oHe3j|w`HiOe0Iaoe`dfLTwgEy<_5I*FD1D9_|{TK zo|?y7&$BBc7YAyKHZ;B2iKmI2pf)^a6_IGIW8fSDm<~;C0#WF^&>om2+$E9ePzyMN zx6OrDP|*$~CP*((zVqh9`l}mwL)v2eCxS6dw2;FK!f0yY+?`CpM*nZG*BbwW{^{|4 z{NG2qf4&YM!EdfTQ91vBo+3Ooqa7$$n()N>5lC*JfTToY>3c<(&<o_&RbvcB?bd}y z;jI}2;UoA5&kL<$a6=gm>auQOd3XfRs%`}bj_KkX>zh7s^Z8*#e6`)GJ8DpNRP>=! zenZEAf7F(x2{;@6J!@Rb(p+dbFrU=Y1c~5Uf0`#57_0z(N-z^#q4p2mx9;mPp$rak zNx2?_U)Q{fl}r4ipb}N7>(ZeF&n>YxsNr&o90~)?t+LN60nc0R#^9X)!jLF54G^F6 zZ&iHG0cK*_M*tVao(bEilhN?utlq|Ub=q2JXu!dMOcY$J;DSgdCZAMsO9{dYB11#! ze-kTir7P>~WGo*5oUAcuS>QJHU#NQ-bfA0^xQIjgNeVFf9U)K-Gs2LG6hEgfW~6I< zl(OGhA@(;@xON=1T;pr?xN9F$Q&F(g>TOf!nG@&pbs_7&{Nyq8nfuWl`_QMV<a70; z^7q`sUp*uKd!?=LUzQ1O!0s@wokn+Ae-Uo-|MrjD`0w~M8tn1keWZ0bs@=-gl+OjZ zS}QB1$pnLp=ww>1<`kCL?hO2Eo#jIVO6)$sp)9zj8J_*$xnF0dH;JSjaqizbze^Ze zgOx}MGhrMXunx>bD_deL7!#M~<%jSBazdqwfr-fxC@qm>M__mz!I%*nudie^f0VCp zy^5JZU4~pq+Z6}G(~?XTBO|H|YBorfQO?SlRF*tzc$XYCql$);tt32`Te+Id|GTR7 z+)qXF0cBg4F88yjvr+ky>Kaux6=?KFoCdd2;2m@ohVWd9+|`0Iw7XF(<s(qkE@kw8 zC_5KRB+SM4#|0}l7+BDZA2o<^e<K)uWM)u_aEU;eM3P>?lw4pn4IVkZwVUDya*-a{ zZd12Q6`6O^5q@PVQzT}*rDonGDbXZ=r%VY*s|pz7D<qLuj=_vr*~pHl(I(YqiN*ym z!6ztzBc_-J-kffSmatQ2t=-CD?pNBXHR~_!Smo<?PT?)@&Z?jS*a;tWf6g`+eF!%| zd5T;^ul%lbrL_DoL{5qfxekm08m6c;<>h7pTRX1-EcUo!McRJ;Hzt4PIJ=8Oc$5F9 z+dFB`|Hp%9KmXrHS~vf<TDj%>EnTM8aLjzBt6i*(Ekf40T9)wuWWlhS*sSw*SWX3J z@YWv=jdg5>m})!gyBHmDf16Xzz?YaalW(&feMic?oPAb%j^`{_D>~~8&RWshf=Ha; zM>{27uc3Pb?*--H-xz)Rtr{2$?YBMKTWiP+QESS#Qjm4myQy>sezS>Ud(QQ@JMy13 z#1U*Gp2D0+QsStv-4=5qmk(yXG4CFBm)GRI7|ohb5<WqASfY=Ie`Z+Oa`9Q+J<4ir zZshB0pxkz)5_FqaeuL=k?OZRc(i!*%!FPvCq;)YCCmr0tABE7kB&@Q$B2ViL9nIP_ zwt4JOrP<eho5!D3IftuM2~`*I)f`T3RAxmd*?z3hv~4^7_u%~e&3A|K`FVJL9tPh% z+^YXAhit2{+WbzEe-du3E78VgjquwZYkh%f3;Z`lmZMbLM*lbBzwYUAzlHz0Cxd<b z|6bDdb@<48CXr|aVvryyn1*p-R>pr6gwZj@)GloU@1F=-7Cf<KHJtPznG&gBgb67W zx)T<SE!=kPJ*LP~cg%s&jOuE;G*xggy0Uin`O7z^to23Yf0!Hw-ap15(fOb)k<z3o z%TT*Ks^O9{1|xJ^^sTKPS0_*cZ)2FS+Oswn9IR|#dqZ1g?N+|Oak?>DF+XYcrWlXu zNANp7+yE1oD4`iZDStn-b&1bv)d%jxr44yDH$XHP%@L#HnRXnp;I&hoqfyB{m${>` zRUqP9)%jNWe=VAh`8Jei0AumzT+5+KNRAce>6Eh++*GrorS1>?W=^n>6S|x=d>X*2 zWKz|5`8@8tDn=CtHIkW^H8|YFuZeo@#B}z-mYkQ4|1Io46O&=J$z`jJV4L=T^?S!H z``<r3>Fw?ReWY~;l8MRdx%Qp~0Lo2PB&Xn8_gmF5f86?is&(aPWK?P7Lz1Qvl>x<m z6xjd#=IdNYgKPWUD5^ZUU+<o)f2Fj=_|HUIFx+7a=qCJkeB2)Yy_4?V|93BG-S~G6 z?%aNuFndyUKHyim;7cRW^uhb(_)kPuEm~g`O1nKyX4Hci+w+#qkIFbpxq%DanYn7O z#|SH%e_%1>{Hj(+w@Yj7#;(IPW#%`nG&U^M^Xo?Us6ixr#qxNU&1b6^mqpjJ-FcJF zDy~a+1MkLr{gLL)qAZ!1*6Mx(xy3m50<|UkRaT7}OX7tcI<__cwdbWR>^~P8cUb-3 z<^HFI^?$#&-~VwhX<bit4erjr85`d2&TEH3f7x4z`d~-&-`x(g*~$L-quy%e8fiIQ z=YZWxAXQ`;kymb&RbSs^7LsnoUEX_T=w#&;2@PN9oB_N2deG(;<9}}2*~SiR#DCrP z`QLuD$A9;e){U4J&e-<k&up7gwW+7|8k}>`<ft5zfD0EWJ@er^Kz?!H|L3bWzrK9> zf8s~~a9PauPd!VtDbPK<q<T8ciJtCytZ275YeCa{i*i<bszW1o_~>Cbd}OfK^3c=J zDq}cwxZIw`N{FpG4&C0h*5bhyzq8gF`mPk%I`L&Vtvc&vgN1E@W`2a(UW8q}4qxid z<-6Pe#GZf8NWS%DV4LvYpnd;muh-qje}C>LwM^>5We3I@b~+tz?w-)D_kr>>hPsqj z?O=@S+dG@l{ne3|pk=uo=4!?jY_^?yO7cxNR17zr`mn@Gc9kC^m_@G#UlWG=lyvv; zUtfsUDYw0v0-eeuBiC4k4dcHTowm<^pA7nY{C6*DlUr(|tLFMTd{o_Jm5M|Ke|0~x z7h2Vbq*GmT5e|axNhq4v2OEqrp?qTgR>zE~;KQ<WnKy3sDQqWg^gGHY!Bl7LL8DI^ zN}c))XtQ)Dm*PDpdbpaJjT*NNUP-i3H7dfH6<pNJeb_?-nPUsG<poXfX_AP7>z9_< z_hsggxLgYd|F#J~Q+HO^8q^Ndf0w&ecOG}ly1g^|sN5#rC=u5?^_#c+tw!JfLo(Lz zv~{DFRR(ZKuO-t~s)YLBt8dU;b)QEeSq$Y>M|Y<emjSAr=Ex|=HOjL0Mmt_sudi{e zX8P&aN~~y#H9Eh(t^)FnLd_lW6?w|XlGH~G$`?+X%Ots@I`=c?*OoTTR{y~iS>`VB z+nL8E{2!h67w-Q(-pBv%C7CJPb9cLSGLb4zqteQIK|Y{aD0{DeeER&wk3p8segzYu evz+ZMz&`EMKJC+&oc=!m0RR7LJNC)|XaE3}_9Vst delta 4076 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 diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-profiling-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-profiling-1.0.0.tgz index 3f57fdd152265b0ae2541c10aeed5c4bbb6de25c..de63515daf6337f03b5bfea82d1057d67b49916d 100644 GIT binary patch delta 1529 zcmV<V1qS-{8}%EIy$YM{e*b~f?01{(k;mHwzajsQbCak6kpb?rIs&!=0oJqe1X=+B zIkQX#@Bx2Qhdt}|UrU;VC;RURX+F0f87~<Ufk31wNRmLPn<q2)ln{L!q0A%8_!U90 zByv?<0lhZ3Q^Gim&?N~+;50<|zon(8_9SJ!>9g;^4}FoHulpR%M>BPb{ln{bvaTOZ zK$>_Lmhr!1U>G3bs6o=rfh&SS=dJ8*2}chI2cmyEp7!>UovNv7`!<W?o6y)aZ;L_x zOzTya-)ZhhzQ~_`_%0cb{m)=FOt^!9-XhC2XTWp3Gc}sQRnB}%U%6Hn@-kutLTh0D zc*!3PX1&$S(->L5*D??6Y|Q*fjKTZ|Z~TLs1x!tRALNa_<g~3EIqjqWKav~rHT?fh zv$=oa|MyP%|0rpz|F0&z(*IYbRsO%alveKl%XY`}|5Yy!@&Ahr5A^?IMqT8a!~RJ9 zsLJ`ztLDysc}SrES>`gN<Vzs`V)2B6zn>HT|FioNNm(?+&l&g<>l!gGxSiG`TQc+P z6c_nZ#6?P#Qmw~cS#39uU0tHyMf@_4eJOu_xyPQXSvl;nKS_C&owJuHqr!CtE3dld z*rykGcWAHc6&ky7vO`l@D{Y_;(1%QV1@#S=$L(4BfV$T^G*s2r`g)3De1Wu&{TEU% z2~ZmZ``CeX?|=4Nh4;T&ZKu;a*?-4K+Z|**<I4E+&<&&$zr0kXwO%H4SwTVS%v67^ zxiriov#$~^)Ma}Jd@g{F^Go!r4dHf*OnUx-G!NB{`SdLVKBY<ENrY7TRY*ba1_prI z5F$57yxKD@tDx>{8?PF~dpB0saH?7_bx~unFlyo!3geZU8!jj39%^hK`H!eHPWN{J z>*T-FFUJ3x-Tq1bkCL`8G(F?`_O^c%-{NYkS*PiOA^cjYkizRi#=bz>EZ?&aJPAX> zW;(=|e{exs8#>IEe(pjdg(#-f8?2fl`X!QAs^D*FFzh4$T7i9O`ENSiUbiU!z0>y} zj+3^=f7W)a%>a-tu8IKZ7p=-eK&tF`F(BR1LxMmXE$@2^q&V`LYaq+&<#B(TG*XeK zmEgyHLOLsOZ!q%wXmYnb#G~x4m0qPVS5;^Is!zjn>+wY~cB4u{@>MRKeC_DU{lhEu z@sIidNGg=I5s>P7+d?4fz={MxD(3Ii%a(&HxW*YTK<gJV?|@S#UIg)!q#a-+njoCH z31b)ui68+sK$q%ff&$LUu-AVuq>Hjm+=lacvB5Asanszcjp3}wVjjdfV3J7`QK5XC zVeT<ypSE&oSk_Pdns1ei3YMT*t_`yA<$>$*fUd@riOo3eN|$PTdPJ^HF)W09mmNy4 z6Pe|s(C<P&yC}I=q}84V9}YL~CaDT%%_C0>5z_-lnrrEjQKsY-{QZB&N<5Dt=fh$3 zEwKYv<iSIKc5(h}F!=2^@A1X6|2bFxE19wEeia`EXD!W&I@_RZ9B#q|4Nto2+v}=( zo?<O``C<o37S$IYYBlrmQ$m814nFDN??wkN5A@Pcv6y*Is>ezOQ&he#ja(wmx9Q+I z+cVYCms=Hi&7P2ATu6V}9U)=JhJs#WG*prGD=_UF!fcjAHb<AC;P#4}=~Fws3r$>? zCXujJTeJF@QrhOJB`>y^@Um*UNUZr>TJ!iRZJ}N*gvBB|es|+!KF=<j$*~GONSUep zkNh>OEaIR%^;O6Md*o)bgjC-{$-&Y$rLv*qnM(J4xl_eI{aJtG9`Qdt{~?L@{TO6z z{J&Xz|Etw$p5lK;NrmXa#)n$ua&0sk#@ctHo5r;tc>~C68FHWSh)|!P(_dDWqFH?w zw!C?36@qa({JwgxRAnpwJ|(bv4n2UoMlQu$2xcdlE9Y*VKd)3CFV)JwHN_y*Uzs|T zMxFdS{r1N9Uz<h!ll&hedDP{G{<c#iq#ic}a>0#P<QnB>XT1IK#SgE3v_fzB%bHLT f#=-X~FQ;@$r*ukxm-OEN00960zD5|b0A>IHLtz(B delta 1529 zcmV<V1qS-{8}%EIy$U+LR_}q+?01{3k;mHxUzGn&zkidb0g(aDvpE8`0s-c;@B~@` z0Y0-!2JiuYYqr|0g8kQOI;Z>JM@jR!{m6L9kO%}KO+k_bLft%>!KZ}i;|OIQS;nsj zf+dlw>I&$!!JQJuVT3M8I0C03!v8HTJ+&t(>rJ112Y%>_?0ntla6X!;Q|upJzms+S zXads2yReM^9RtGv2}cc*ZVp@#6gqEZZ%a6OKsXS8)$z2qkL*-URok~&9N&b-rg>Wo z@@HDFviweSNAgAf^uu?_c<g@$vthy=1oReJt~mpq<DIF|46btKTl&hix{#L<D-c=( z^T$j6XfW%oW}e2#`n{HUU}t0IM`8@-KX~IG+$>;f;`<<P>?Nmd<;ZCt{r{2NkgwtY zcbd(A4gbG)(*H+ETm64E;g$ZsDy{PW)ups@|6jH{p8v0Ud5HgCY<QsmA2aGA-yHTw z>PJ=1e_l0r{>wuO1;{d&Athe|`4@{P6#V_1`2U~Xmq^N@A%4!lmsr<`al!4h9@&za zXQ#NxpCT?&s+4Ly_R4CzdF<*E^)BL<dF)Gn@yk8-T+Pa1kNru?tL&V;L>U#XGgx`m zHOD@^z`H|xU9ZsCjguXk%35gyeSkh>(krNMxIAvp+6UCV-l3tYw$|5E6ypn|eeA!G zdP#uVAlSzatb6~n-zvQS)oMGP?#cc;M%wNm>ls(ZpNDQBo%rRYDy{W0q00&iQfH=r zYR#o#7MXpOaG@^SL*R1(bevzJUu_7tQ)JTf52SghZp^1|8Sp7h0#72O(yu}adN(it z)P@kbLE_b(X;}qzU)y-qAl|#Nx`tELdZ~*Vi-l1Ww@?_b)ZB16IrmUw`^bMprE$8y z16U{joqjR?*X;IB@_&@HeWB?Y*SEKSrT7+CTg^I67YyOoN`(|&7c%w*(q{Rdec(wL z5;oHzzWjp=(%R5rw)Ars5-CJ6rQTrG6wxn{yix^!OM_t_`PT~UOUr-L>Gryt@_+jN z!%@=K_|MvowHW}?#Z?g?{i0QQ2uPJ3F9xJLdPopxqvd^XffPqxa}8u!y*zGzlSV4i zv=aQdPe^A4?hQtsA5HGIhj^6TwbH8;=BnzfU-fBtZauyz#%@$eNWRLYldm0Jxqo=2 zKK@Z307-?iHUd&zZ(9gN9axbdNX7iUdf9St1=l#^1!(;u<{fa##ET%FlC%SiL=%KF zH(?ATArU0N2Ix}VOi;jC8TJ}~hICQ3iQ8~KFE$vaCvKYCwK1F(S<Hht2TU@FA}W-R zGt51v?9)~*4a@qeU-PY!QNa>4%e6rkzC3U}9?;d8GO-z_UFlM7PmjpeDTalR@3KSb zbt1ET6#8B0XBQ>+inQ9(;KSkO-6U1vta;>VA!2&qNOLV+GRl;^g1`TNSc&H`<a{`+ zz9n|xiadDe&o0iN4F<pc<~_c6_CM$9e<d@P-LK-q;H;%tQD+;Jjl)g2py5eZeS2MX z&r_`BE??|G$)ft=L#<{$eo9Di(!nPk{N3o_<$+%MDHb!&N%dICV2aAurIAa-`8FL~ zXM3hP`f{rxuh|n)j0-7$yCWnF*-+4HjD{+*eg&p|LzvBy$mZxW6x?2MGkt2OccF>v z(j*eLYHL;>Q%c)BwdBPX6JAzL7l}2WOKToKr7hH}g|Jv;$M0^O%;(u<GdWhF2Prd^ z|B=6Dl|>wsr@jhVV2|8vmXPXuC^=aArc^eRJX7huFL$c=r$1|d+#~*{=RYLzz8{0E zjsG``?|-#A&ME$PlvIcwY<#FiF4sn*VXS>8x@lbdkvD+6mLc~Ej|lY%I{js3DVo)1 zVauDhRv{Rt!|$v2N>#S<?^6P+=g<SVYvfYAg<y7)xpMB-`SVKU@lvh)TT=`|{gtUh zY1GNT({FEl|FzjfJIVhsl1E)`=x;kULh5ltAQ#+tMXph9cE;NuU;OauM=SJ}zpM!r fVH|v)@^VV2bV{f6cS-*Z00960g2g`F0A>IHG*T2E diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-prometheus-operator-objects-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-prometheus-operator-objects-1.0.0.tgz index 4019bcd1ff6ebc7a39393f09f9eba0d106eb1f90..0ee8a5364be5947b8cd509413425f95a387d326a 100644 GIT binary patch delta 348890 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 X!!w+zH&i&dx3?3<BYHR_ak&2js3LR9 delta 348181 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⁢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"uUldLh4sXN5dTuhtVD8 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%0D2$ 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⁣@QYspXcOIiqs2=H_?dP)E07 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 NGQvp&6eLlE{{uEH8leCH diff --git a/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-metrics.alloy index d20dcd98d..8bf3ae289 100644 --- a/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-metrics.alloy @@ -49,7 +49,7 @@ prometheus.remote_write "prometheus" { } remote.kubernetes.secret "prometheus" { - name = "prometheus-ko-k8s-monitoring" + name = "prometheus-k8smon-k8s-monitoring" namespace = "default" } @@ -111,7 +111,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-receiver.alloy b/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-receiver.alloy index d5bb49ed5..ef0ddb011 100644 --- a/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-receiver.alloy +++ b/charts/k8s-monitoring/docs/examples/auth/bearer-token/alloy-receiver.alloy @@ -49,7 +49,7 @@ prometheus.remote_write "prometheus" { } remote.kubernetes.secret "prometheus" { - name = "prometheus-ko-k8s-monitoring" + name = "prometheus-k8smon-k8s-monitoring" namespace = "default" } diff --git a/charts/k8s-monitoring/docs/examples/auth/bearer-token/output.yaml b/charts/k8s-monitoring/docs/examples/auth/bearer-token/output.yaml index d80dc8521..8f0e65ccd 100644 --- a/charts/k8s-monitoring/docs/examples/auth/bearer-token/output.yaml +++ b/charts/k8s-monitoring/docs/examples/auth/bearer-token/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -51,7 +51,7 @@ metadata: apiVersion: v1 kind: Secret metadata: - name: "prometheus-ko-k8s-monitoring" + name: "prometheus-k8smon-k8s-monitoring" namespace: "default" type: Opaque data: @@ -61,7 +61,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -116,7 +116,7 @@ data: } remote.kubernetes.secret "prometheus" { - name = "prometheus-ko-k8s-monitoring" + name = "prometheus-k8smon-k8s-monitoring" namespace = "default" } @@ -178,7 +178,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -225,7 +225,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -378,7 +378,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default data: config.alloy: |- @@ -433,7 +433,7 @@ data: } remote.kubernetes.secret "prometheus" { - name = "prometheus-ko-k8s-monitoring" + name = "prometheus-k8smon-k8s-monitoring" namespace = "default" } @@ -636,11 +636,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -736,11 +736,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -836,11 +836,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -936,11 +936,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -949,21 +949,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -972,21 +972,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -995,21 +995,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-receiver + name: k8smon-alloy-receiver subjects: - kind: ServiceAccount - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1019,7 +1019,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1031,11 +1031,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1047,7 +1047,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -1064,11 +1064,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1078,7 +1078,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1090,11 +1090,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1104,7 +1104,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1120,11 +1120,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1134,16 +1134,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1224,7 +1224,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -1236,11 +1236,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1250,16 +1250,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-receiver + serviceAccountName: k8smon-alloy-receiver containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1334,17 +1334,17 @@ spec: volumes: - name: config configMap: - name: ko-alloy-receiver + name: k8smon-alloy-receiver --- # Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1353,11 +1353,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -1365,9 +1365,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1379,7 +1379,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -1442,4 +1442,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/alloy-metrics.alloy index ce301572e..3814b0fd1 100644 --- a/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/alloy-metrics.alloy @@ -110,7 +110,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/output.yaml b/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/output.yaml index 0431d688a..c9536ceb1 100644 --- a/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/output.yaml +++ b/charts/k8s-monitoring/docs/examples/auth/embedded-secrets/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -51,7 +51,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -167,7 +167,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -214,7 +214,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -367,7 +367,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default data: config.alloy: |- @@ -613,11 +613,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -713,11 +713,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -813,11 +813,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -913,11 +913,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -926,21 +926,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -949,21 +949,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -972,21 +972,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-receiver + name: k8smon-alloy-receiver subjects: - kind: ServiceAccount - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -996,7 +996,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1008,11 +1008,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1024,7 +1024,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -1041,11 +1041,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1055,7 +1055,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1067,11 +1067,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1081,7 +1081,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1097,11 +1097,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1111,16 +1111,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1198,7 +1198,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -1210,11 +1210,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1224,16 +1224,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-receiver + serviceAccountName: k8smon-alloy-receiver containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1308,17 +1308,17 @@ spec: volumes: - name: config configMap: - name: ko-alloy-receiver + name: k8smon-alloy-receiver --- # Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1327,11 +1327,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -1339,9 +1339,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1353,7 +1353,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -1416,4 +1416,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/auth/external-secrets/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/auth/external-secrets/alloy-metrics.alloy index dd5f57b8e..987798a5a 100644 --- a/charts/k8s-monitoring/docs/examples/auth/external-secrets/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/auth/external-secrets/alloy-metrics.alloy @@ -118,7 +118,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/auth/external-secrets/output.yaml b/charts/k8s-monitoring/docs/examples/auth/external-secrets/output.yaml index 17e47e6fa..66b199fc5 100644 --- a/charts/k8s-monitoring/docs/examples/auth/external-secrets/output.yaml +++ b/charts/k8s-monitoring/docs/examples/auth/external-secrets/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -51,7 +51,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -175,7 +175,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -222,7 +222,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -387,7 +387,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default data: config.alloy: |- @@ -665,11 +665,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -765,11 +765,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -865,11 +865,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -965,11 +965,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -978,21 +978,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1001,21 +1001,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1024,21 +1024,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-receiver + name: k8smon-alloy-receiver subjects: - kind: ServiceAccount - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1048,7 +1048,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1060,11 +1060,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1076,7 +1076,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -1093,11 +1093,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1107,7 +1107,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1119,11 +1119,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1133,7 +1133,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1149,11 +1149,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1163,16 +1163,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1250,7 +1250,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -1262,11 +1262,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1276,16 +1276,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-receiver + serviceAccountName: k8smon-alloy-receiver containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1360,17 +1360,17 @@ spec: volumes: - name: config configMap: - name: ko-alloy-receiver + name: k8smon-alloy-receiver --- # Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1379,11 +1379,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -1391,9 +1391,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1405,7 +1405,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -1468,4 +1468,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/auth/sigv4/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/auth/sigv4/alloy-metrics.alloy index a5ada80e6..3c5d36614 100644 --- a/charts/k8s-monitoring/docs/examples/auth/sigv4/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/auth/sigv4/alloy-metrics.alloy @@ -53,7 +53,7 @@ prometheus.remote_write "prometheus" { } remote.kubernetes.secret "prometheus" { - name = "prometheus-ko-k8s-monitoring" + name = "prometheus-k8smon-k8s-monitoring" namespace = "default" } @@ -64,7 +64,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -171,7 +171,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -182,7 +182,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -196,7 +196,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -207,7 +207,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -237,7 +237,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -289,7 +289,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/auth/sigv4/output.yaml b/charts/k8s-monitoring/docs/examples/auth/sigv4/output.yaml index 70043e711..e27f3ded4 100644 --- a/charts/k8s-monitoring/docs/examples/auth/sigv4/output.yaml +++ b/charts/k8s-monitoring/docs/examples/auth/sigv4/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -26,17 +26,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -44,16 +44,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -61,15 +61,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/templates/destination_secret.yaml apiVersion: v1 kind: Secret metadata: - name: "prometheus-ko-k8s-monitoring" + name: "prometheus-k8smon-k8s-monitoring" namespace: "default" type: Opaque data: @@ -80,7 +80,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -88,9 +88,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -103,7 +103,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -162,7 +162,7 @@ data: } remote.kubernetes.secret "prometheus" { - name = "prometheus-ko-k8s-monitoring" + name = "prometheus-k8smon-k8s-monitoring" namespace = "default" } @@ -173,7 +173,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -280,7 +280,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -291,7 +291,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -305,7 +305,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -316,7 +316,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -346,7 +346,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -398,7 +398,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -443,7 +443,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1640,7 +1640,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -1900,11 +1900,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2006,10 +2006,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2156,11 +2156,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2169,10 +2169,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2185,28 +2185,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2218,7 +2218,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2235,11 +2235,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2249,7 +2249,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2261,7 +2261,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2269,9 +2269,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2283,13 +2283,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2297,9 +2297,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2311,13 +2311,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2325,9 +2325,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2340,13 +2340,13 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2354,14 +2354,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -2378,9 +2378,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2388,7 +2388,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -2473,7 +2473,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2481,14 +2481,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2504,9 +2504,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2518,7 +2518,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2568,13 +2568,13 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2582,14 +2582,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -2602,13 +2602,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -2664,11 +2664,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2677,11 +2677,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2689,9 +2689,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2703,7 +2703,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -2766,4 +2766,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/autoscaling/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/autoscaling/alloy-metrics.alloy index d12822c60..579b52685 100644 --- a/charts/k8s-monitoring/docs/examples/autoscaling/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/autoscaling/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -186,7 +186,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -197,7 +197,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -227,7 +227,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -279,7 +279,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/autoscaling/output.yaml b/charts/k8s-monitoring/docs/examples/autoscaling/output.yaml index 581f40187..53ee00c2d 100644 --- a/charts/k8s-monitoring/docs/examples/autoscaling/output.yaml +++ b/charts/k8s-monitoring/docs/examples/autoscaling/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -26,17 +26,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -44,16 +44,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -61,15 +61,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -77,9 +77,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -92,7 +92,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -152,7 +152,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -259,7 +259,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -270,7 +270,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -284,7 +284,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -295,7 +295,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -325,7 +325,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -377,7 +377,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -422,7 +422,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1619,7 +1619,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -1879,11 +1879,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1985,10 +1985,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2135,11 +2135,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2148,10 +2148,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2164,28 +2164,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2197,7 +2197,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2214,11 +2214,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2228,7 +2228,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2240,7 +2240,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2248,9 +2248,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2262,13 +2262,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2276,9 +2276,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2290,13 +2290,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2304,9 +2304,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2319,13 +2319,13 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2333,14 +2333,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -2357,9 +2357,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2367,7 +2367,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -2452,7 +2452,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2460,14 +2460,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2483,9 +2483,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2497,7 +2497,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2547,13 +2547,13 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2561,14 +2561,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -2581,13 +2581,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -2643,11 +2643,11 @@ spec: apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2657,7 +2657,7 @@ spec: scaleTargetRef: apiVersion: apps/v1 kind: statefulset - name: ko-alloy-metrics + name: k8smon-alloy-metrics minReplicas: 2 maxReplicas: 10 behavior: @@ -2680,11 +2680,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2692,11 +2692,11 @@ metadata: spec: podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2704,9 +2704,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2718,7 +2718,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -2785,4 +2785,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/collector-storage/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/collector-storage/alloy-metrics.alloy index 6a62bf7f5..8b35099a7 100644 --- a/charts/k8s-monitoring/docs/examples/collector-storage/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/collector-storage/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -186,7 +186,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -197,7 +197,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -227,7 +227,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -279,7 +279,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/collector-storage/output.yaml b/charts/k8s-monitoring/docs/examples/collector-storage/output.yaml index 43dfb65f6..a55ca4182 100644 --- a/charts/k8s-monitoring/docs/examples/collector-storage/output.yaml +++ b/charts/k8s-monitoring/docs/examples/collector-storage/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -42,17 +42,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -60,16 +60,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -77,15 +77,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -93,9 +93,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -108,7 +108,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -168,7 +168,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -275,7 +275,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -286,7 +286,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -300,7 +300,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -311,7 +311,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -341,7 +341,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -393,7 +393,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -439,7 +439,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -591,7 +591,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1788,7 +1788,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2048,11 +2048,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2148,11 +2148,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2254,10 +2254,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2404,11 +2404,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2417,21 +2417,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2440,10 +2440,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2456,28 +2456,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2487,7 +2487,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2499,11 +2499,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2515,7 +2515,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2532,11 +2532,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2546,7 +2546,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2558,7 +2558,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2566,9 +2566,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2580,13 +2580,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2594,9 +2594,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2608,13 +2608,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2622,9 +2622,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2637,17 +2637,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2657,16 +2657,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2747,7 +2747,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -2763,7 +2763,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2771,14 +2771,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -2795,9 +2795,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2805,7 +2805,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -2890,7 +2890,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2898,14 +2898,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2921,9 +2921,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2935,7 +2935,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2985,13 +2985,13 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2999,14 +2999,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -3019,13 +3019,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3081,11 +3081,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3094,11 +3094,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3106,9 +3106,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3120,7 +3120,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3186,7 +3186,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics volumeClaimTemplates: - metadata: diff --git a/charts/k8s-monitoring/docs/examples/extra-rules/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/extra-rules/alloy-metrics.alloy index f444ee55f..0b22a9ca1 100644 --- a/charts/k8s-monitoring/docs/examples/extra-rules/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/extra-rules/alloy-metrics.alloy @@ -63,7 +63,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -170,7 +170,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -181,7 +181,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -195,7 +195,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -206,7 +206,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -236,7 +236,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } diff --git a/charts/k8s-monitoring/docs/examples/extra-rules/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/extra-rules/alloy-singleton.alloy index c22ceeb55..cc59fabd7 100644 --- a/charts/k8s-monitoring/docs/examples/extra-rules/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/extra-rules/alloy-singleton.alloy @@ -135,7 +135,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/extra-rules/output.yaml b/charts/k8s-monitoring/docs/examples/extra-rules/output.yaml index d3ab33919..f9f5e7bf4 100644 --- a/charts/k8s-monitoring/docs/examples/extra-rules/output.yaml +++ b/charts/k8s-monitoring/docs/examples/extra-rules/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -58,17 +58,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -76,16 +76,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -93,15 +93,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -109,9 +109,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -124,7 +124,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -193,7 +193,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -300,7 +300,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -311,7 +311,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -325,7 +325,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -336,7 +336,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -366,7 +366,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -409,7 +409,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -550,7 +550,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -597,7 +597,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -777,7 +777,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1974,7 +1974,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2234,11 +2234,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2334,11 +2334,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2434,11 +2434,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2540,10 +2540,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2690,11 +2690,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2703,21 +2703,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2726,21 +2726,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2749,10 +2749,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2765,28 +2765,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2796,7 +2796,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2808,11 +2808,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2824,7 +2824,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2841,11 +2841,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2855,7 +2855,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2867,11 +2867,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2881,7 +2881,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2893,7 +2893,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2901,9 +2901,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2915,13 +2915,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2929,9 +2929,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2943,13 +2943,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2957,9 +2957,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2972,17 +2972,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2992,16 +2992,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3082,7 +3082,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -3094,7 +3094,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -3102,14 +3102,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -3126,9 +3126,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3136,7 +3136,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -3221,7 +3221,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -3229,14 +3229,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -3252,9 +3252,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3266,7 +3266,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -3316,17 +3316,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3337,7 +3337,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3345,9 +3345,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3422,13 +3422,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3436,14 +3436,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -3456,13 +3456,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3518,11 +3518,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3531,11 +3531,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3543,9 +3543,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3557,7 +3557,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3623,4 +3623,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/alloy-metrics.alloy index 902b5ea83..fdb4c143f 100644 --- a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/alloy-metrics.alloy @@ -261,7 +261,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/output.yaml index 98e890c56..1b90a6bd1 100644 --- a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -286,7 +286,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -331,11 +331,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -431,11 +431,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -444,21 +444,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -470,7 +470,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -487,11 +487,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -501,7 +501,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -513,11 +513,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -526,11 +526,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -538,9 +538,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -552,7 +552,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -615,4 +615,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/alloy-metrics.alloy index 889a7de61..9339707cb 100644 --- a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/alloy-metrics.alloy @@ -261,7 +261,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/output.yaml b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/output.yaml index 553701d68..b11110e7d 100644 --- a/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/annotation-autodiscovery/prom-annotations/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -286,7 +286,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -331,11 +331,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -431,11 +431,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -444,21 +444,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -470,7 +470,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -487,11 +487,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -501,7 +501,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -513,11 +513,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -526,11 +526,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -538,9 +538,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -552,7 +552,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -615,4 +615,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/alloy-receiver.alloy b/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/alloy-receiver.alloy index 8c317f870..faf55306a 100644 --- a/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/alloy-receiver.alloy +++ b/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/alloy-receiver.alloy @@ -183,7 +183,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/output.yaml index 87670de20..433918389 100644 --- a/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/applicaiton-observability/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default data: config.alloy: |- @@ -208,7 +208,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -253,11 +253,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -353,11 +353,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -366,21 +366,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-receiver + name: k8smon-alloy-receiver subjects: - kind: ServiceAccount - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default --- # Source: k8s-monitoring/charts/alloy-receiver/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -390,7 +390,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -406,11 +406,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -420,16 +420,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-receiver + serviceAccountName: k8smon-alloy-receiver containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -504,4 +504,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-receiver + name: k8smon-alloy-receiver diff --git a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/alloy-metrics.alloy index 7ea85070d..abb63bd1a 100644 --- a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/alloy-metrics.alloy @@ -126,7 +126,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/output.yaml b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/output.yaml index 20f98caee..641f305ec 100644 --- a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics-and-traces/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-beyla + name: k8smon-beyla namespace: default labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -51,7 +51,7 @@ automountServiceAccountToken: true apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -183,7 +183,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -229,7 +229,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default data: config.alloy: |- @@ -409,12 +409,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-beyla + name: k8smon-beyla namespace: default labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -455,17 +455,17 @@ data: - application_service_graph - application_span otel_traces_export: - endpoint: http://ko-alloy-receiver.default.svc.cluster.local:4317 + endpoint: http://k8smon-alloy-receiver.default.svc.cluster.local:4317 --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -561,11 +561,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -661,11 +661,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-beyla + name: k8smon-beyla labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -682,11 +682,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -695,21 +695,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -718,43 +718,43 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-receiver + name: k8smon-alloy-receiver subjects: - kind: ServiceAccount - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default --- # Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/cluster-role-binding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-beyla + name: k8smon-beyla labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla app.kubernetes.io/component: rbac subjects: - kind: ServiceAccount - name: ko-beyla + name: k8smon-beyla namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-beyla + name: k8smon-beyla --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -766,7 +766,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -783,11 +783,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -797,7 +797,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -809,11 +809,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -823,7 +823,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -839,11 +839,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -853,16 +853,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-receiver + serviceAccountName: k8smon-alloy-receiver containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -937,18 +937,18 @@ spec: volumes: - name: config configMap: - name: ko-alloy-receiver + name: k8smon-alloy-receiver --- # Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/daemon-set.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-beyla + name: k8smon-beyla namespace: default labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -957,7 +957,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: type: RollingUpdate template: @@ -968,13 +968,13 @@ spec: labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla app.kubernetes.io/component: workload spec: - serviceAccountName: ko-beyla + serviceAccountName: k8smon-beyla hostPID: true containers: - name: beyla @@ -997,17 +997,17 @@ spec: volumes: - name: beyla-config configMap: - name: ko-beyla + name: k8smon-beyla --- # Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1016,11 +1016,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -1028,9 +1028,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1042,7 +1042,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -1105,4 +1105,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/alloy-metrics.alloy index c83784fe2..529dccce0 100644 --- a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/alloy-metrics.alloy @@ -114,7 +114,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/output.yaml b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/output.yaml index 0211477a7..117fcc009 100644 --- a/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/auto-instrumentation/beyla-metrics/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-beyla + name: k8smon-beyla namespace: default labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -35,7 +35,7 @@ automountServiceAccountToken: true apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -155,7 +155,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -200,12 +200,12 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-beyla + name: k8smon-beyla namespace: default labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -250,11 +250,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -350,11 +350,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-beyla + name: k8smon-beyla labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -371,11 +371,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -384,43 +384,43 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/cluster-role-binding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-beyla + name: k8smon-beyla labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla app.kubernetes.io/component: rbac subjects: - kind: ServiceAccount - name: ko-beyla + name: k8smon-beyla namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-beyla + name: k8smon-beyla --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -432,7 +432,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -449,11 +449,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -463,7 +463,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -475,12 +475,12 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-beyla + name: k8smon-beyla namespace: default labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla @@ -489,7 +489,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: type: RollingUpdate template: @@ -500,13 +500,13 @@ spec: labels: helm.sh/chart: beyla-1.4.13 app.kubernetes.io/name: beyla - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.8" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: beyla app.kubernetes.io/component: workload spec: - serviceAccountName: ko-beyla + serviceAccountName: k8smon-beyla hostPID: true containers: - name: beyla @@ -529,17 +529,17 @@ spec: volumes: - name: beyla-config configMap: - name: ko-beyla + name: k8smon-beyla --- # Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -548,11 +548,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -560,9 +560,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -574,7 +574,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -637,4 +637,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/cluster-events/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/cluster-events/default/output.yaml index fb2876cb9..1dfd2c353 100644 --- a/charts/k8s-monitoring/docs/examples/features/cluster-events/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/cluster-events/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -63,11 +63,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -163,11 +163,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -176,21 +176,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -200,7 +200,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -212,11 +212,11 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -227,7 +227,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -235,9 +235,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -309,4 +309,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton diff --git a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-metrics.alloy index d52006007..e88b6c77f 100644 --- a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -276,7 +276,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -287,7 +287,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -301,7 +301,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -312,7 +312,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -342,7 +342,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -387,7 +387,7 @@ declare "etcd_integration" { } remote.kubernetes.configmap "etcd" { - name = "ko-alloy-module-databases" + name = "k8smon-alloy-module-databases" namespace = "default" } diff --git a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-singleton.alloy index 8873cda71..6f2009c76 100644 --- a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/alloy-singleton.alloy @@ -95,7 +95,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/output.yaml b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/output.yaml index 4464bef84..e54a4cb93 100644 --- a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/control-plane-monitoring/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -58,17 +58,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -76,16 +76,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -93,15 +93,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -109,9 +109,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -124,7 +124,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -184,7 +184,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -406,7 +406,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -417,7 +417,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -431,7 +431,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -442,7 +442,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -472,7 +472,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -517,7 +517,7 @@ data: } remote.kubernetes.configmap "etcd" { - name = "ko-alloy-module-databases" + name = "k8smon-alloy-module-databases" namespace = "default" } @@ -548,7 +548,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -649,7 +649,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -697,7 +697,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -849,7 +849,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-databases + name: k8smon-alloy-module-databases data: kv_etcd_metrics.alloy: | /* @@ -1101,7 +1101,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -2298,7 +2298,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2558,11 +2558,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2658,11 +2658,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2758,11 +2758,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2864,10 +2864,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -3014,11 +3014,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3027,21 +3027,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3050,21 +3050,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3073,10 +3073,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -3089,28 +3089,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3120,7 +3120,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -3132,11 +3132,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3148,7 +3148,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -3165,11 +3165,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3179,7 +3179,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -3191,11 +3191,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3205,7 +3205,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -3217,7 +3217,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3225,9 +3225,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -3239,13 +3239,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -3253,9 +3253,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -3267,13 +3267,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -3281,9 +3281,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -3296,17 +3296,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3316,16 +3316,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3403,7 +3403,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -3415,7 +3415,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -3423,14 +3423,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -3447,9 +3447,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3457,7 +3457,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -3542,7 +3542,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -3550,14 +3550,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -3573,9 +3573,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3587,7 +3587,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -3637,17 +3637,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3658,7 +3658,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3666,9 +3666,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3740,13 +3740,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3754,14 +3754,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -3774,13 +3774,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3836,11 +3836,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3849,11 +3849,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3861,9 +3861,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3875,7 +3875,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3938,4 +3938,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/alloy-metrics.alloy index 18f8efb74..a0d657838 100644 --- a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -186,7 +186,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -197,7 +197,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -227,7 +227,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -361,7 +361,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/output.yaml index 89bf23c1d..8e85c4001 100644 --- a/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/cluster-metrics/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-kepler + name: k8smon-kepler namespace: default labels: helm.sh/chart: kepler-0.5.11 @@ -39,17 +39,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -57,21 +57,21 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-opencost + name: k8smon-opencost namespace: default labels: helm.sh/chart: opencost-1.42.3 app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.113.0" app.kubernetes.io/part-of: opencost app.kubernetes.io/managed-by: Helm @@ -81,7 +81,7 @@ automountServiceAccountToken: true apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -89,15 +89,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -105,9 +105,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -120,7 +120,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -180,7 +180,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -287,7 +287,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -298,7 +298,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -312,7 +312,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -323,7 +323,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -353,7 +353,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -487,7 +487,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -532,7 +532,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1729,7 +1729,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -1989,11 +1989,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2089,7 +2089,7 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-kepler-clusterrole + name: k8smon-kepler-clusterrole rules: - apiGroups: [""] resources: @@ -2112,10 +2112,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2264,11 +2264,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-opencost + name: k8smon-opencost labels: helm.sh/chart: opencost-1.42.3 app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.113.0" app.kubernetes.io/part-of: opencost app.kubernetes.io/managed-by: Helm @@ -2349,11 +2349,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2362,24 +2362,24 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-kepler-clusterrole-binding + name: k8smon-kepler-clusterrole-binding roleRef: kind: ClusterRole - name: ko-kepler-clusterrole + name: k8smon-kepler-clusterrole apiGroup: "rbac.authorization.k8s.io" subjects: - kind: ServiceAccount - name: ko-kepler + name: k8smon-kepler namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2392,49 +2392,49 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-opencost + name: k8smon-opencost labels: helm.sh/chart: opencost-1.42.3 app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.113.0" app.kubernetes.io/part-of: opencost app.kubernetes.io/managed-by: Helm roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-opencost + name: k8smon-opencost subjects: - kind: ServiceAccount - name: ko-opencost + name: k8smon-opencost namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2446,7 +2446,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2463,11 +2463,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2477,7 +2477,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2489,7 +2489,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kepler + name: k8smon-kepler namespace: default labels: helm.sh/chart: kepler-0.5.11 @@ -2512,7 +2512,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2520,9 +2520,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2534,13 +2534,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2548,9 +2548,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2562,25 +2562,25 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-opencost + name: k8smon-opencost namespace: default labels: helm.sh/chart: opencost-1.42.3 app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.113.0" app.kubernetes.io/part-of: opencost app.kubernetes.io/managed-by: Helm spec: selector: app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon type: "ClusterIP" ports: - name: http @@ -2591,7 +2591,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2599,9 +2599,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2614,13 +2614,13 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-kepler + name: k8smon-kepler namespace: default labels: helm.sh/chart: kepler-0.5.11 @@ -2642,7 +2642,7 @@ spec: app.kubernetes.io/component: exporter spec: hostNetwork: true - serviceAccountName: ko-kepler + serviceAccountName: k8smon-kepler containers: - name: kepler-exporter image: "quay.io/sustainable_computing_io/kepler:release-0.7.12" @@ -2739,7 +2739,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2747,14 +2747,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -2771,9 +2771,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2781,7 +2781,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -2866,7 +2866,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2874,14 +2874,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2897,9 +2897,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2911,7 +2911,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2961,13 +2961,13 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2975,14 +2975,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -2995,13 +2995,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3057,12 +3057,12 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: ko-opencost + name: k8smon-opencost namespace: default labels: helm.sh/chart: opencost-1.42.3 app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.113.0" app.kubernetes.io/part-of: opencost app.kubernetes.io/managed-by: Helm @@ -3071,7 +3071,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon strategy: rollingUpdate: maxSurge: 1 @@ -3081,9 +3081,9 @@ spec: metadata: labels: app.kubernetes.io/name: opencost - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-opencost + serviceAccountName: k8smon-opencost tolerations: - effect: NoSchedule key: kubernetes.io/arch @@ -3092,7 +3092,7 @@ spec: nodeSelector: kubernetes.io/os: linux containers: - - name: ko-opencost + - name: k8smon-opencost image: ghcr.io/opencost/opencost:1.113.0@sha256:b313d6d320058bbd3841a948fb636182f49b46df2368d91e2ae046ed03c0f83c imagePullPolicy: IfNotPresent args: @@ -3168,11 +3168,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3181,11 +3181,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3193,9 +3193,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3207,7 +3207,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3270,4 +3270,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/alloy/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/integrations/alloy/alloy-metrics.alloy index b18274070..bb3d64887 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/alloy/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/integrations/alloy/alloy-metrics.alloy @@ -340,7 +340,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/alloy/output.yaml b/charts/k8s-monitoring/docs/examples/features/integrations/alloy/output.yaml index 3587ab969..d1141e6b6 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/alloy/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/integrations/alloy/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -365,7 +365,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -410,11 +410,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -510,11 +510,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -523,21 +523,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -549,7 +549,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -566,11 +566,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -580,7 +580,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -592,11 +592,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -605,11 +605,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -617,9 +617,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -631,7 +631,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -694,4 +694,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/alloy-metrics.alloy index 7a8284560..efc3188ce 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/alloy-metrics.alloy @@ -53,7 +53,7 @@ declare "cert_manager_integration" { } remote.kubernetes.configmap "cert_manager" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -94,7 +94,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/output.yaml b/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/output.yaml index 7cd849f3e..6e7494595 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/integrations/cert-manager/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -78,7 +78,7 @@ data: } remote.kubernetes.configmap "cert_manager" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -119,7 +119,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -164,7 +164,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: cert-manager_metrics.alloy: | /* @@ -395,11 +395,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -495,11 +495,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -508,21 +508,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -534,7 +534,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -551,11 +551,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -565,7 +565,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -577,11 +577,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -590,11 +590,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -602,9 +602,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -616,7 +616,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -679,4 +679,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/etcd/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/integrations/etcd/alloy-metrics.alloy index 21b6600c7..698737086 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/etcd/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/integrations/etcd/alloy-metrics.alloy @@ -53,7 +53,7 @@ declare "etcd_integration" { } remote.kubernetes.configmap "etcd" { - name = "ko-alloy-module-databases" + name = "k8smon-alloy-module-databases" namespace = "default" } @@ -93,7 +93,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/etcd/output.yaml b/charts/k8s-monitoring/docs/examples/features/integrations/etcd/output.yaml index d5015bc95..20bab5f42 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/etcd/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/integrations/etcd/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -78,7 +78,7 @@ data: } remote.kubernetes.configmap "etcd" { - name = "ko-alloy-module-databases" + name = "k8smon-alloy-module-databases" namespace = "default" } @@ -118,7 +118,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -163,7 +163,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-databases + name: k8smon-alloy-module-databases data: kv_etcd_metrics.alloy: | /* @@ -415,11 +415,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -515,11 +515,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -528,21 +528,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -554,7 +554,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -571,11 +571,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -585,7 +585,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -597,11 +597,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -610,11 +610,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -622,9 +622,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -636,7 +636,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -699,4 +699,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/mysql/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/integrations/mysql/alloy-metrics.alloy index 711ef4a60..89522aa4b 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/mysql/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/integrations/mysql/alloy-metrics.alloy @@ -73,7 +73,7 @@ declare "mysql_integration" { remote.kubernetes.secret "prod_db" { - name = "prod-db-ko-integrations" + name = "prod-db-k8smon-integrations" namespace = "default" } @@ -120,7 +120,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/integrations/mysql/output.yaml b/charts/k8s-monitoring/docs/examples/features/integrations/mysql/output.yaml index fe5ad4681..785710fb8 100644 --- a/charts/k8s-monitoring/docs/examples/features/integrations/mysql/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/integrations/mysql/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,7 +35,7 @@ metadata: apiVersion: v1 kind: Secret metadata: - name: "prod-db-ko-integrations" + name: "prod-db-k8smon-integrations" namespace: "default" stringData: username: "db-admin" @@ -45,7 +45,7 @@ stringData: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -124,7 +124,7 @@ data: remote.kubernetes.secret "prod_db" { - name = "prod-db-ko-integrations" + name = "prod-db-k8smon-integrations" namespace = "default" } @@ -171,7 +171,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -217,7 +217,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -429,11 +429,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -529,11 +529,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -629,11 +629,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -642,21 +642,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -665,21 +665,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -689,7 +689,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -701,11 +701,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -717,7 +717,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -734,11 +734,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -748,7 +748,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -760,11 +760,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -774,16 +774,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -861,7 +861,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -873,11 +873,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -886,11 +886,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -898,9 +898,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -912,7 +912,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -975,4 +975,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/features/node-logs/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/node-logs/default/output.yaml index d3f842b41..cbeeac845 100644 --- a/charts/k8s-monitoring/docs/examples/features/node-logs/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/node-logs/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -84,11 +84,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -184,11 +184,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -197,21 +197,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -221,7 +221,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -233,11 +233,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -247,16 +247,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -334,7 +334,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log diff --git a/charts/k8s-monitoring/docs/examples/features/pod-logs/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/pod-logs/default/output.yaml index 28f5b3282..90e61e218 100644 --- a/charts/k8s-monitoring/docs/examples/features/pod-logs/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/pod-logs/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -171,11 +171,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -271,11 +271,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -284,21 +284,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -308,7 +308,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -320,11 +320,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -334,16 +334,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -421,7 +421,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log diff --git a/charts/k8s-monitoring/docs/examples/features/profiling/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/profiling/default/output.yaml index a727481d4..a8f307d3d 100644 --- a/charts/k8s-monitoring/docs/examples/features/profiling/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/profiling/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles namespace: default labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles namespace: default data: config.alloy: |- @@ -875,11 +875,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -975,11 +975,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -988,21 +988,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-profiles + name: k8smon-alloy-profiles subjects: - kind: ServiceAccount - name: ko-alloy-profiles + name: k8smon-alloy-profiles namespace: default --- # Source: k8s-monitoring/charts/alloy-profiles/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1012,7 +1012,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -1024,11 +1024,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1038,16 +1038,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-profiles + serviceAccountName: k8smon-alloy-profiles containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -1105,4 +1105,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-profiles + name: k8smon-alloy-profiles diff --git a/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/alloy-metrics.alloy index 2f41af909..f49b05cb7 100644 --- a/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/alloy-metrics.alloy @@ -105,7 +105,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/output.yaml b/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/output.yaml index 0fa6eebbd..85ceebcc2 100644 --- a/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/output.yaml +++ b/charts/k8s-monitoring/docs/examples/features/prometheus-operator-objects/default/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -130,7 +130,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -175,11 +175,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -275,11 +275,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -288,21 +288,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -314,7 +314,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -331,11 +331,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -345,7 +345,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -357,11 +357,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -370,11 +370,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -382,9 +382,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -396,7 +396,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -459,4 +459,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/metrics-tuning/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/metrics-tuning/alloy-metrics.alloy index 4e69cf819..8d5c39baf 100644 --- a/charts/k8s-monitoring/docs/examples/metrics-tuning/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/metrics-tuning/alloy-metrics.alloy @@ -265,7 +265,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -372,7 +372,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -383,7 +383,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -397,7 +397,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -408,7 +408,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -438,7 +438,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -490,7 +490,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/metrics-tuning/output.yaml b/charts/k8s-monitoring/docs/examples/metrics-tuning/output.yaml index 3d57f927c..1c0bb78c3 100644 --- a/charts/k8s-monitoring/docs/examples/metrics-tuning/output.yaml +++ b/charts/k8s-monitoring/docs/examples/metrics-tuning/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -26,17 +26,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -44,16 +44,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -61,15 +61,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -77,9 +77,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -92,7 +92,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -363,7 +363,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -470,7 +470,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -481,7 +481,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -495,7 +495,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -506,7 +506,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -536,7 +536,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -588,7 +588,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -634,7 +634,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1831,7 +1831,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2091,11 +2091,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2197,10 +2197,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2347,11 +2347,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2360,10 +2360,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2376,28 +2376,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2409,7 +2409,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2426,11 +2426,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2440,7 +2440,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2452,7 +2452,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2460,9 +2460,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2474,13 +2474,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2488,9 +2488,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2502,13 +2502,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2516,9 +2516,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2531,13 +2531,13 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2545,14 +2545,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -2569,9 +2569,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2579,7 +2579,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -2664,7 +2664,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2672,14 +2672,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2695,9 +2695,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2709,7 +2709,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2759,13 +2759,13 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2773,14 +2773,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -2793,13 +2793,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -2855,11 +2855,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2868,11 +2868,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2880,9 +2880,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2894,7 +2894,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -2957,4 +2957,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-metrics.alloy index 0ad14f928..76a880c7e 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -186,7 +186,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -197,7 +197,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -227,7 +227,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } diff --git a/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-singleton.alloy index 49bd2a914..d244a43f8 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/azure-aks/alloy-singleton.alloy @@ -95,7 +95,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/platforms/azure-aks/output.yaml b/charts/k8s-monitoring/docs/examples/platforms/azure-aks/output.yaml index 6a836ca99..f8b1c1ed0 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/azure-aks/output.yaml +++ b/charts/k8s-monitoring/docs/examples/platforms/azure-aks/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -58,17 +58,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -76,16 +76,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -93,15 +93,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -109,9 +109,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -124,7 +124,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -184,7 +184,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -291,7 +291,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -302,7 +302,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -316,7 +316,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -327,7 +327,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -357,7 +357,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -400,7 +400,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -501,7 +501,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -548,7 +548,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -700,7 +700,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1897,7 +1897,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2157,11 +2157,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2257,11 +2257,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2357,11 +2357,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2463,10 +2463,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2613,11 +2613,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2626,21 +2626,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2649,21 +2649,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2672,10 +2672,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2688,28 +2688,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2719,7 +2719,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2731,11 +2731,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2747,7 +2747,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2764,11 +2764,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2778,7 +2778,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2790,11 +2790,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2804,7 +2804,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2816,7 +2816,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2824,9 +2824,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2838,13 +2838,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2852,9 +2852,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2866,13 +2866,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2880,9 +2880,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2895,17 +2895,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2915,7 +2915,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2923,9 +2923,9 @@ spec: kubernetes.azure.com/set-kube-service-host-fqdn: "true" labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3003,7 +3003,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -3015,7 +3015,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -3023,14 +3023,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -3047,9 +3047,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3057,7 +3057,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -3142,7 +3142,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -3150,14 +3150,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -3173,9 +3173,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3187,7 +3187,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -3237,17 +3237,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3258,7 +3258,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3267,9 +3267,9 @@ spec: kubernetes.azure.com/set-kube-service-host-fqdn: "true" labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3341,13 +3341,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3355,14 +3355,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -3375,16 +3375,16 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: kubernetes.azure.com/set-kube-service-host-fqdn: "true" spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3440,11 +3440,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3453,11 +3453,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3466,9 +3466,9 @@ spec: kubernetes.azure.com/set-kube-service-host-fqdn: "true" labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3480,7 +3480,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3543,4 +3543,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-metrics.alloy index 20751b48a..c1d171b75 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -192,7 +192,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } diff --git a/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-singleton.alloy index 353d31e48..ddd144811 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/alloy-singleton.alloy @@ -95,7 +95,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/output.yaml b/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/output.yaml index 5c99fafca..3ac1b23de 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/output.yaml +++ b/charts/k8s-monitoring/docs/examples/platforms/eks-fargate/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -58,17 +58,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -76,15 +76,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -92,9 +92,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -107,7 +107,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -167,7 +167,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -274,7 +274,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -285,7 +285,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -305,7 +305,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -348,7 +348,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -449,7 +449,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -496,7 +496,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -628,7 +628,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1825,11 +1825,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1925,11 +1925,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2025,11 +2025,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2131,10 +2131,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2281,11 +2281,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2294,21 +2294,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2317,21 +2317,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2340,10 +2340,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2356,28 +2356,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs-cluster + name: k8smon-alloy-logs-cluster labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2389,7 +2389,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2406,11 +2406,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2420,7 +2420,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2432,11 +2432,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2448,7 +2448,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2465,11 +2465,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2479,7 +2479,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2491,11 +2491,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2505,7 +2505,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2517,7 +2517,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2525,9 +2525,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2539,13 +2539,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2553,9 +2553,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2568,13 +2568,13 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2582,14 +2582,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2605,9 +2605,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2619,7 +2619,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2669,17 +2669,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2690,16 +2690,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2711,7 +2711,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-logs-cluster + - --cluster.join-addresses=k8smon-alloy-logs-cluster - --stability.level=generally-available env: - name: ALLOY_DEPLOY_MODE @@ -2776,7 +2776,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: dockercontainers hostPath: path: /var/lib/docker/containers @@ -2785,11 +2785,11 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2800,7 +2800,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2808,9 +2808,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2882,13 +2882,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2896,14 +2896,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -2916,13 +2916,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -2978,11 +2978,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2991,11 +2991,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3003,9 +3003,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3017,7 +3017,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3080,4 +3080,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-metrics.alloy index b22293759..1ce9914aa 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -192,7 +192,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } diff --git a/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-singleton.alloy index 2af3b8bb1..e0067d9a0 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/alloy-singleton.alloy @@ -95,7 +95,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/output.yaml b/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/output.yaml index 0a2b5f418..028d1372c 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/output.yaml +++ b/charts/k8s-monitoring/docs/examples/platforms/gke-autopilot/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -58,17 +58,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -76,15 +76,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -92,9 +92,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -107,7 +107,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -167,7 +167,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -274,7 +274,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -285,7 +285,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -305,7 +305,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -348,7 +348,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -449,7 +449,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -496,7 +496,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -648,7 +648,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1845,11 +1845,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -1945,11 +1945,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2045,11 +2045,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2151,10 +2151,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2301,11 +2301,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2314,21 +2314,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2337,21 +2337,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2360,10 +2360,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2376,28 +2376,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2407,7 +2407,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2419,11 +2419,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2435,7 +2435,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2452,11 +2452,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2466,7 +2466,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2478,11 +2478,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2492,7 +2492,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2504,7 +2504,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2512,9 +2512,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2526,13 +2526,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2540,9 +2540,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2555,17 +2555,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2575,16 +2575,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2662,7 +2662,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -2674,7 +2674,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2682,14 +2682,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2705,9 +2705,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2719,7 +2719,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -2769,17 +2769,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2790,7 +2790,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2798,9 +2798,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -2872,13 +2872,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2886,14 +2886,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -2906,13 +2906,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -2968,11 +2968,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2981,11 +2981,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -2993,9 +2993,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3007,7 +3007,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3070,4 +3070,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-metrics.alloy index 37ee13be6..a535837cf 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -186,7 +186,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -197,7 +197,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -227,7 +227,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } diff --git a/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-singleton.alloy index 2f8e1114f..63a619bf7 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/platforms/openshift/alloy-singleton.alloy @@ -95,7 +95,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/platforms/openshift/output.yaml b/charts/k8s-monitoring/docs/examples/platforms/openshift/output.yaml index 52774d6a3..907a742e6 100644 --- a/charts/k8s-monitoring/docs/examples/platforms/openshift/output.yaml +++ b/charts/k8s-monitoring/docs/examples/platforms/openshift/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -51,7 +51,7 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-kepler + name: k8smon-kepler namespace: default labels: helm.sh/chart: kepler-0.5.11 @@ -71,17 +71,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -89,16 +89,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -106,15 +106,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -122,9 +122,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -137,7 +137,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -197,7 +197,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -304,7 +304,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -315,7 +315,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -329,7 +329,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -340,7 +340,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -370,7 +370,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -454,7 +454,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -555,7 +555,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -602,7 +602,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -754,7 +754,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1951,7 +1951,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2211,11 +2211,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2311,11 +2311,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2411,11 +2411,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2511,7 +2511,7 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-kepler-clusterrole + name: k8smon-kepler-clusterrole rules: - apiGroups: [""] resources: @@ -2534,10 +2534,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2684,7 +2684,7 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-kepler-scc + name: k8smon-kepler-scc rules: - verbs: - use @@ -2693,13 +2693,13 @@ rules: resources: - securitycontextconstraints resourceNames: - - ko-kepler + - k8smon-kepler --- # Source: k8s-monitoring/templates/platform_specific/openshift/alloy-logs-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs-scc + name: k8smon-alloy-logs-scc rules: - verbs: - use @@ -2708,13 +2708,13 @@ rules: resources: - securitycontextconstraints resourceNames: - - ko-alloy-logs + - k8smon-alloy-logs --- # Source: k8s-monitoring/templates/platform_specific/openshift/alloy-metrics-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics-scc + name: k8smon-alloy-metrics-scc rules: - verbs: - use @@ -2723,13 +2723,13 @@ rules: resources: - securitycontextconstraints resourceNames: - - ko-alloy-metrics + - k8smon-alloy-metrics --- # Source: k8s-monitoring/templates/platform_specific/openshift/alloy-singleton-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton-scc + name: k8smon-alloy-singleton-scc rules: - verbs: - use @@ -2738,17 +2738,17 @@ rules: resources: - securitycontextconstraints resourceNames: - - ko-alloy-singleton + - k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2757,21 +2757,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2780,21 +2780,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2803,24 +2803,24 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-kepler-clusterrole-binding + name: k8smon-kepler-clusterrole-binding roleRef: kind: ClusterRole - name: ko-kepler-clusterrole + name: k8smon-kepler-clusterrole apiGroup: "rbac.authorization.k8s.io" subjects: - kind: ServiceAccount - name: ko-kepler + name: k8smon-kepler namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2833,84 +2833,84 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/templates/platform_specific/openshift/kepler-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-kepler-scc + name: k8smon-kepler-scc roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kepler-scc + name: k8smon-kepler-scc subjects: - kind: ServiceAccount - name: ko-kepler + name: k8smon-kepler namespace: default --- # Source: k8s-monitoring/templates/platform_specific/openshift/alloy-logs-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs-scc + name: k8smon-alloy-logs-scc roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs-scc + name: k8smon-alloy-logs-scc subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/templates/platform_specific/openshift/alloy-metrics-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics-scc + name: k8smon-alloy-metrics-scc roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics-scc + name: k8smon-alloy-metrics-scc subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/templates/platform_specific/openshift/alloy-singleton-scc.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton-scc + name: k8smon-alloy-singleton-scc roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton-scc + name: k8smon-alloy-singleton-scc subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2920,7 +2920,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2932,11 +2932,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2948,7 +2948,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2965,11 +2965,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2979,7 +2979,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2991,11 +2991,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3005,7 +3005,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -3017,7 +3017,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kepler + name: k8smon-kepler namespace: default labels: helm.sh/chart: kepler-0.5.11 @@ -3040,7 +3040,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3048,9 +3048,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -3062,13 +3062,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -3076,9 +3076,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -3090,13 +3090,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -3104,9 +3104,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -3119,17 +3119,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3139,16 +3139,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3226,7 +3226,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -3238,7 +3238,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-kepler + name: k8smon-kepler namespace: default labels: helm.sh/chart: kepler-0.5.11 @@ -3260,7 +3260,7 @@ spec: app.kubernetes.io/component: exporter spec: hostNetwork: true - serviceAccountName: ko-kepler + serviceAccountName: k8smon-kepler containers: - name: kepler-exporter image: "quay.io/sustainable_computing_io/kepler:release-0.7.12" @@ -3357,7 +3357,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -3365,14 +3365,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -3389,9 +3389,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3399,7 +3399,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -3484,7 +3484,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -3492,14 +3492,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -3515,9 +3515,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -3529,7 +3529,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -3579,17 +3579,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3600,7 +3600,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3608,9 +3608,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3682,13 +3682,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3696,14 +3696,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -3716,13 +3716,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3778,11 +3778,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3791,11 +3791,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3803,9 +3803,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -3817,7 +3817,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3880,13 +3880,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics --- # Source: k8s-monitoring/charts/clusterMetrics/templates/platform_specific/openshift/kepler-scc.yaml apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: - name: ko-kepler + name: k8smon-kepler allowHostDirVolumePlugin: true allowHostIPC: false allowHostNetwork: true @@ -3914,7 +3914,7 @@ seccompProfiles: supplementalGroups: type: RunAsAny users: - - system:serviceaccount:default:ko-kepler + - system:serviceaccount:default:k8smon-kepler volumes: - configMap - hostPath @@ -3924,7 +3924,7 @@ volumes: apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs allowHostDirVolumePlugin: true allowHostIPC: false allowHostNetwork: false @@ -3977,7 +3977,7 @@ volumes: apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics allowHostDirVolumePlugin: false allowHostIPC: false allowHostNetwork: false @@ -4029,7 +4029,7 @@ volumes: apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton allowHostDirVolumePlugin: false allowHostIPC: false allowHostNetwork: false diff --git a/charts/k8s-monitoring/docs/examples/private-image-registries/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/private-image-registries/alloy-metrics.alloy index ec41b580a..cbc31f6b1 100644 --- a/charts/k8s-monitoring/docs/examples/private-image-registries/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/private-image-registries/alloy-metrics.alloy @@ -54,7 +54,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -161,7 +161,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -172,7 +172,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -186,7 +186,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -197,7 +197,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -227,7 +227,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -279,7 +279,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/private-image-registries/output.yaml b/charts/k8s-monitoring/docs/examples/private-image-registries/output.yaml index 0d2257a4a..bf8e273e6 100644 --- a/charts/k8s-monitoring/docs/examples/private-image-registries/output.yaml +++ b/charts/k8s-monitoring/docs/examples/private-image-registries/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -42,10 +42,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default imagePullSecrets: - name: my-registry-creds @@ -54,7 +54,7 @@ imagePullSecrets: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -62,9 +62,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false imagePullSecrets: - name: my-registry-creds @@ -73,7 +73,7 @@ imagePullSecrets: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -81,9 +81,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon imagePullSecrets: - name: my-registry-creds --- @@ -91,7 +91,7 @@ imagePullSecrets: apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -99,9 +99,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -114,7 +114,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -174,7 +174,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -281,7 +281,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -292,7 +292,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -306,7 +306,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -317,7 +317,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -347,7 +347,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -399,7 +399,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -445,7 +445,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -597,7 +597,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -1794,7 +1794,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -2054,11 +2054,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2154,11 +2154,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2260,10 +2260,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -2410,11 +2410,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2423,21 +2423,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2446,10 +2446,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -2462,28 +2462,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2493,7 +2493,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2505,11 +2505,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2521,7 +2521,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -2538,11 +2538,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2552,7 +2552,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -2564,7 +2564,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -2572,9 +2572,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -2586,13 +2586,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2600,9 +2600,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2614,13 +2614,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2628,9 +2628,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -2643,17 +2643,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -2663,16 +2663,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs imagePullSecrets: - name: my-registry-creds containers: @@ -2752,7 +2752,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -2764,7 +2764,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -2772,14 +2772,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -2796,9 +2796,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2806,7 +2806,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: my.registry.com/prometheus/node-exporter:v1.8.2 @@ -2893,7 +2893,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -2901,14 +2901,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -2924,9 +2924,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -2938,7 +2938,7 @@ spec: image: my.registry.com/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: my.registry.com/prometheus-community/windows-exporter:0.29.2 @@ -2990,13 +2990,13 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -3004,14 +3004,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -3024,13 +3024,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -3088,11 +3088,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3101,11 +3101,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -3113,9 +3113,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics imagePullSecrets: - name: my-registry-creds containers: @@ -3129,7 +3129,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -3192,4 +3192,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/proxies/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/proxies/alloy-metrics.alloy index 001f00c82..afc3adc17 100644 --- a/charts/k8s-monitoring/docs/examples/proxies/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/proxies/alloy-metrics.alloy @@ -55,7 +55,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -162,7 +162,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -173,7 +173,7 @@ declare "cluster_metrics" { kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -187,7 +187,7 @@ declare "cluster_metrics" { } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -198,7 +198,7 @@ declare "cluster_metrics" { node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -228,7 +228,7 @@ declare "cluster_metrics" { } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } diff --git a/charts/k8s-monitoring/docs/examples/proxies/alloy-singleton.alloy b/charts/k8s-monitoring/docs/examples/proxies/alloy-singleton.alloy index eed9a72b9..5e48e69a9 100644 --- a/charts/k8s-monitoring/docs/examples/proxies/alloy-singleton.alloy +++ b/charts/k8s-monitoring/docs/examples/proxies/alloy-singleton.alloy @@ -96,7 +96,7 @@ discovery.relabel "kubernetes_monitoring_telemetry" { rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" diff --git a/charts/k8s-monitoring/docs/examples/proxies/output.yaml b/charts/k8s-monitoring/docs/examples/proxies/output.yaml index be47a7d95..011c84daf 100644 --- a/charts/k8s-monitoring/docs/examples/proxies/output.yaml +++ b/charts/k8s-monitoring/docs/examples/proxies/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,12 +19,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -35,12 +35,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles namespace: default labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -51,12 +51,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -67,12 +67,12 @@ metadata: apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -90,17 +90,17 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -108,16 +108,16 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon automountServiceAccountToken: false --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -125,15 +125,15 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml apiVersion: v1 kind: ConfigMap metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -141,9 +141,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon data: config.yml: | collectors: @@ -156,7 +156,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -217,7 +217,7 @@ data: } remote.kubernetes.configmap "kubernetes" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -324,7 +324,7 @@ data: } remote.kubernetes.configmap "kube_state_metrics" { - name = "ko-alloy-module-kubernetes" + name = "k8smon-alloy-module-kubernetes" namespace = "default" } @@ -335,7 +335,7 @@ data: kube_state_metrics.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=kube-state-metrics", - "release=ko", + "release=k8smon", ] } @@ -349,7 +349,7 @@ data: } remote.kubernetes.configmap "node_exporter" { - name = "ko-alloy-module-system" + name = "k8smon-alloy-module-system" namespace = "default" } @@ -360,7 +360,7 @@ data: node_exporter.kubernetes "targets" { label_selectors = [ "app.kubernetes.io/name=node-exporter", - "release=ko", + "release=k8smon", ] } @@ -390,7 +390,7 @@ data: } selectors { role = "pod" - label = "app.kubernetes.io/name=windows-exporter,release=ko" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" } } @@ -433,7 +433,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default data: config.alloy: |- @@ -535,7 +535,7 @@ data: rule { target_label = "instance" action = "replace" - replacement = "ko" + replacement = "k8smon" } rule { target_label = "job" @@ -584,7 +584,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default data: config.alloy: |- @@ -736,7 +736,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default data: config.alloy: |- @@ -972,7 +972,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles namespace: default data: config.alloy: |- @@ -1828,7 +1828,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-kubernetes + name: k8smon-alloy-module-kubernetes data: core_metrics.alloy: | /* @@ -3025,7 +3025,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-module-system + name: k8smon-alloy-module-system data: node-exporter_metrics.alloy: | /* @@ -3285,11 +3285,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3385,11 +3385,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3485,11 +3485,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3585,11 +3585,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3685,11 +3685,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3791,10 +3791,10 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics rules: - apiGroups: ["certificates.k8s.io"] @@ -3941,11 +3941,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3954,21 +3954,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-logs + name: k8smon-alloy-logs subjects: - kind: ServiceAccount - name: ko-alloy-logs + name: k8smon-alloy-logs namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -3977,21 +3977,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-profiles/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4000,21 +4000,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-profiles + name: k8smon-alloy-profiles subjects: - kind: ServiceAccount - name: ko-alloy-profiles + name: k8smon-alloy-profiles namespace: default --- # Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4023,21 +4023,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-receiver + name: k8smon-alloy-receiver subjects: - kind: ServiceAccount - name: ko-alloy-receiver + name: k8smon-alloy-receiver namespace: default --- # Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4046,10 +4046,10 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-singleton + name: k8smon-alloy-singleton subjects: - kind: ServiceAccount - name: ko-alloy-singleton + name: k8smon-alloy-singleton namespace: default --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -4062,28 +4062,28 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko - name: ko-kube-state-metrics + release: k8smon + name: k8smon-kube-state-metrics roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics subjects: - kind: ServiceAccount - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4093,7 +4093,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -4105,11 +4105,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4121,7 +4121,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -4138,11 +4138,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4152,7 +4152,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -4164,11 +4164,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4178,7 +4178,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -4190,11 +4190,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4204,7 +4204,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -4220,11 +4220,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4234,7 +4234,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -4246,7 +4246,7 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -4254,9 +4254,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon annotations: spec: type: "ClusterIP" @@ -4268,13 +4268,13 @@ spec: selector: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -4282,9 +4282,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -4296,13 +4296,13 @@ spec: name: metrics selector: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml apiVersion: v1 kind: Service metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -4310,9 +4310,9 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon annotations: prometheus.io/scrape: "true" spec: @@ -4325,17 +4325,17 @@ spec: name: metrics selector: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon --- # Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-logs + name: k8smon-alloy-logs labels: helm.sh/chart: alloy-logs-0.10.0 app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4345,16 +4345,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-logs - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-logs + serviceAccountName: k8smon-alloy-logs containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -4432,7 +4432,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-logs + name: k8smon-alloy-logs - name: varlog hostPath: path: /var/log @@ -4444,11 +4444,11 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-profiles + name: k8smon-alloy-profiles labels: helm.sh/chart: alloy-profiles-0.10.0 app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4458,16 +4458,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-profiles - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-profiles + serviceAccountName: k8smon-alloy-profiles containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -4525,17 +4525,17 @@ spec: volumes: - name: config configMap: - name: ko-alloy-profiles + name: k8smon-alloy-profiles --- # Source: k8s-monitoring/charts/alloy-receiver/templates/controllers/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-alloy-receiver + name: k8smon-alloy-receiver labels: helm.sh/chart: alloy-receiver-0.10.0 app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4545,16 +4545,16 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: kubectl.kubernetes.io/default-container: alloy labels: app.kubernetes.io/name: alloy-receiver - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-receiver + serviceAccountName: k8smon-alloy-receiver containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -4635,13 +4635,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-receiver + name: k8smon-alloy-receiver --- # Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-node-exporter + name: k8smon-node-exporter namespace: default labels: helm.sh/chart: node-exporter-4.42.0 @@ -4649,14 +4649,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon revisionHistoryLimit: 10 updateStrategy: rollingUpdate: @@ -4673,9 +4673,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: node-exporter app.kubernetes.io/name: node-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "1.8.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -4683,7 +4683,7 @@ spec: runAsGroup: 65534 runAsNonRoot: true runAsUser: 65534 - serviceAccountName: ko-node-exporter + serviceAccountName: k8smon-node-exporter containers: - name: node-exporter image: quay.io/prometheus/node-exporter:v1.8.2 @@ -4768,7 +4768,7 @@ spec: apiVersion: apps/v1 kind: DaemonSet metadata: - name: ko-windows-exporter + name: k8smon-windows-exporter namespace: default labels: helm.sh/chart: windows-exporter-0.7.1 @@ -4776,14 +4776,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon updateStrategy: rollingUpdate: maxUnavailable: 1 @@ -4799,9 +4799,9 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: windows-exporter app.kubernetes.io/name: windows-exporter - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "0.29.2" - release: ko + release: k8smon spec: automountServiceAccountToken: false securityContext: @@ -4813,7 +4813,7 @@ spec: image: ghcr.io/prometheus-community/windows-exporter:0.29.2 command: [ "powershell" ] args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] - serviceAccountName: ko-windows-exporter + serviceAccountName: k8smon-windows-exporter containers: - name: windows-exporter image: ghcr.io/prometheus-community/windows-exporter:0.29.2 @@ -4863,17 +4863,17 @@ spec: volumes: - name: config configMap: - name: ko-windows-exporter + name: k8smon-windows-exporter --- # Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-alloy-singleton + name: k8smon-alloy-singleton labels: helm.sh/chart: alloy-singleton-0.10.0 app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -4884,7 +4884,7 @@ spec: selector: matchLabels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -4892,9 +4892,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-singleton - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-singleton + serviceAccountName: k8smon-alloy-singleton containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -4966,13 +4966,13 @@ spec: volumes: - name: config configMap: - name: ko-alloy-singleton + name: k8smon-alloy-singleton --- # Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: - name: ko-kube-state-metrics + name: k8smon-kube-state-metrics namespace: default labels: helm.sh/chart: kube-state-metrics-5.27.0 @@ -4980,14 +4980,14 @@ metadata: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon replicas: 1 strategy: type: Recreate @@ -5000,13 +5000,13 @@ spec: app.kubernetes.io/component: metrics app.kubernetes.io/part-of: kube-state-metrics app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "2.14.0" - release: ko + release: k8smon spec: automountServiceAccountToken: true hostNetwork: false - serviceAccountName: ko-kube-state-metrics + serviceAccountName: k8smon-kube-state-metrics securityContext: fsGroup: 65534 runAsGroup: 65534 @@ -5062,11 +5062,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -5075,11 +5075,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -5087,9 +5087,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -5101,7 +5101,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=generally-available env: @@ -5164,4 +5164,4 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/docs/examples/remote-config/alloy-metrics.alloy b/charts/k8s-monitoring/docs/examples/remote-config/alloy-metrics.alloy index ee1c2ff65..c4b0b5105 100644 --- a/charts/k8s-monitoring/docs/examples/remote-config/alloy-metrics.alloy +++ b/charts/k8s-monitoring/docs/examples/remote-config/alloy-metrics.alloy @@ -2,7 +2,7 @@ remote.kubernetes.secret "alloy_metrics_remote_cfg" { - name = "alloy-metrics-remote-cfg-ko-k8s-monitoring" + name = "alloy-metrics-remote-cfg-k8smon-k8s-monitoring" namespace = "default" } diff --git a/charts/k8s-monitoring/docs/examples/remote-config/output.yaml b/charts/k8s-monitoring/docs/examples/remote-config/output.yaml index 3fc5210e3..6c33f5adf 100644 --- a/charts/k8s-monitoring/docs/examples/remote-config/output.yaml +++ b/charts/k8s-monitoring/docs/examples/remote-config/output.yaml @@ -3,12 +3,12 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -19,7 +19,7 @@ metadata: apiVersion: v1 kind: Secret metadata: - name: "alloy-metrics-remote-cfg-ko-k8s-monitoring" + name: "alloy-metrics-remote-cfg-k8smon-k8s-monitoring" namespace: "default" type: Opaque data: @@ -30,7 +30,7 @@ data: apiVersion: v1 kind: ConfigMap metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default data: config.alloy: |- @@ -38,7 +38,7 @@ data: remote.kubernetes.secret "alloy_metrics_remote_cfg" { - name = "alloy-metrics-remote-cfg-ko-k8s-monitoring" + name = "alloy-metrics-remote-cfg-k8smon-k8s-monitoring" namespace = "default" } @@ -61,11 +61,11 @@ data: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -161,11 +161,11 @@ rules: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -174,21 +174,21 @@ metadata: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: ko-alloy-metrics + name: k8smon-alloy-metrics subjects: - kind: ServiceAccount - name: ko-alloy-metrics + name: k8smon-alloy-metrics namespace: default --- # Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics-cluster + name: k8smon-alloy-metrics-cluster labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -200,7 +200,7 @@ spec: publishNotReadyAddresses: true selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon ports: # Do not include the -metrics suffix in the port name, otherwise metrics # can be double-collected with the non-headless Service if it's also @@ -217,11 +217,11 @@ spec: apiVersion: v1 kind: Service metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -231,7 +231,7 @@ spec: type: ClusterIP selector: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon internalTrafficPolicy: Cluster ports: - name: http-metrics @@ -243,11 +243,11 @@ spec: apiVersion: apps/v1 kind: StatefulSet metadata: - name: ko-alloy-metrics + name: k8smon-alloy-metrics labels: helm.sh/chart: alloy-metrics-0.10.0 app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon app.kubernetes.io/version: "v1.5.0" app.kubernetes.io/managed-by: Helm @@ -256,11 +256,11 @@ spec: replicas: 1 podManagementPolicy: Parallel minReadySeconds: 10 - serviceName: ko-alloy-metrics + serviceName: k8smon-alloy-metrics selector: matchLabels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon template: metadata: annotations: @@ -268,9 +268,9 @@ spec: k8s.grafana.com/logs.job: integrations/alloy labels: app.kubernetes.io/name: alloy-metrics - app.kubernetes.io/instance: ko + app.kubernetes.io/instance: k8smon spec: - serviceAccountName: ko-alloy-metrics + serviceAccountName: k8smon-alloy-metrics containers: - name: alloy image: docker.io/grafana/alloy:v1.5.0 @@ -282,7 +282,7 @@ spec: - --server.http.listen-addr=0.0.0.0:12345 - --server.http.ui-path-prefix=/ - --cluster.enabled=true - - --cluster.join-addresses=ko-alloy-metrics-cluster + - --cluster.join-addresses=k8smon-alloy-metrics-cluster - --cluster.name="alloy-metrics" - --stability.level=public-preview env: @@ -345,7 +345,7 @@ spec: volumes: - name: config configMap: - name: ko-alloy-metrics + name: k8smon-alloy-metrics --- # Source: k8s-monitoring/templates/remote_config_secret.yaml # create: true diff --git a/charts/k8s-monitoring/tests/integration/auth/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/auth/.rendered/output.yaml new file mode 100644 index 000000000..3b81e9b06 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/auth/.rendered/output.yaml @@ -0,0 +1,1850 @@ +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-metrics + namespace: default + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "prometheus-basicauth-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + username: "cHJvbXVzZXI=" + password: "cHJvbXBhc3N3b3Jk" +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "prometheus-bearer-token-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + bearerToken: "bXktc2VjcmV0LXJlbW90ZS13cml0ZS10b2tlbg==" +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "prometheus-otlp-basicauth-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + username: "b3RlbHVzZXI=" + password: "b3RlbHBhc3N3b3Jk" +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "prometheus-otlp-bearer-token-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + bearerToken: "bXktc2VjcmV0LW90bHAtdG9rZW4=" +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-metrics + namespace: default +data: + config.alloy: |- + // Destination: prometheus-noauth (prometheus) + otelcol.exporter.prometheus "prometheus_noauth" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.prometheus_noauth.receiver] + } + + prometheus.remote_write "prometheus_noauth" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "auth-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "auth-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + external_labels = { + destination = "prometheus-noauth", + } + } + // Destination: prometheus-basicauth (prometheus) + otelcol.exporter.prometheus "prometheus_basicauth" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.prometheus_basicauth.receiver] + } + + prometheus.remote_write "prometheus_basicauth" { + endpoint { + url = "http://nginx-basic-auth.prometheus.svc/auth-gateway/api/v1/write" + headers = { + } + basic_auth { + username = nonsensitive(remote.kubernetes.secret.prometheus_basicauth.data["username"]) + password = remote.kubernetes.secret.prometheus_basicauth.data["password"] + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "auth-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "auth-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + external_labels = { + destination = "prometheus-basicauth", + } + } + + remote.kubernetes.secret "prometheus_basicauth" { + name = "prometheus-basicauth-k8smon-k8s-monitoring" + namespace = "default" + } + + // Destination: prometheus-bearer-token (prometheus) + otelcol.exporter.prometheus "prometheus_bearer_token" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.prometheus_bearer_token.receiver] + } + + prometheus.remote_write "prometheus_bearer_token" { + endpoint { + url = "http://nginx-bearer-token.prometheus.svc/remote-write/api/v1/write" + headers = { + } + bearer_token = remote.kubernetes.secret.prometheus_bearer_token.data["bearerToken"] + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "auth-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "auth-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + external_labels = { + destination = "prometheus-bearer-token", + } + } + + remote.kubernetes.secret "prometheus_bearer_token" { + name = "prometheus-bearer-token-k8smon-k8s-monitoring" + namespace = "default" + } + + // Destination: prometheus-otlp-noauth (otlp) + otelcol.receiver.prometheus "prometheus_otlp_noauth" { + output { + metrics = [otelcol.processor.attributes.prometheus_otlp_noauth.input] + } + } + + otelcol.processor.attributes "prometheus_otlp_noauth" { + action { + key = "cluster" + action = "upsert" + value = "auth-integration-test" + } + action { + key = "k8s.cluster.name" + action = "upsert" + value = "auth-integration-test" + } + action { + key = "destination" + action = "upsert" + value = "prometheus-otlp-noauth" + } + output { + metrics = [otelcol.processor.transform.prometheus_otlp_noauth.input] + logs = [otelcol.processor.transform.prometheus_otlp_noauth.input] + traces = [otelcol.processor.transform.prometheus_otlp_noauth.input] + } + } + + otelcol.processor.transform "prometheus_otlp_noauth" { + error_mode = "ignore" + + output { + metrics = [otelcol.processor.batch.prometheus_otlp_noauth.input] + } + } + + otelcol.processor.batch "prometheus_otlp_noauth" { + timeout = "2s" + send_batch_size = 8192 + send_batch_max_size = 0 + + output { + metrics = [otelcol.exporter.otlphttp.prometheus_otlp_noauth.input] + } + } + otelcol.exporter.otlphttp "prometheus_otlp_noauth" { + client { + endpoint = "http://prometheus-server.prometheus.svc:9090/api/v1/otlp" + tls { + insecure = false + insecure_skip_verify = false + } + } + } + // Destination: prometheus-otlp-basicauth (otlp) + otelcol.receiver.prometheus "prometheus_otlp_basicauth" { + output { + metrics = [otelcol.processor.attributes.prometheus_otlp_basicauth.input] + } + } + otelcol.auth.basic "prometheus_otlp_basicauth" { + username = nonsensitive(remote.kubernetes.secret.prometheus_otlp_basicauth.data["username"]) + password = remote.kubernetes.secret.prometheus_otlp_basicauth.data["password"] + } + + otelcol.processor.attributes "prometheus_otlp_basicauth" { + action { + key = "cluster" + action = "upsert" + value = "auth-integration-test" + } + action { + key = "k8s.cluster.name" + action = "upsert" + value = "auth-integration-test" + } + action { + key = "destination" + action = "upsert" + value = "prometheus-otlp-basicauth" + } + output { + metrics = [otelcol.processor.transform.prometheus_otlp_basicauth.input] + logs = [otelcol.processor.transform.prometheus_otlp_basicauth.input] + traces = [otelcol.processor.transform.prometheus_otlp_basicauth.input] + } + } + + otelcol.processor.transform "prometheus_otlp_basicauth" { + error_mode = "ignore" + + output { + metrics = [otelcol.processor.batch.prometheus_otlp_basicauth.input] + } + } + + otelcol.processor.batch "prometheus_otlp_basicauth" { + timeout = "2s" + send_batch_size = 8192 + send_batch_max_size = 0 + + output { + metrics = [otelcol.exporter.otlphttp.prometheus_otlp_basicauth.input] + } + } + otelcol.exporter.otlphttp "prometheus_otlp_basicauth" { + client { + endpoint = "http://nginx-basic-auth.prometheus.svc/auth-gateway/api/v1/otlp" + auth = otelcol.auth.basic.prometheus_otlp_basicauth.handler + tls { + insecure = false + insecure_skip_verify = false + } + } + } + + remote.kubernetes.secret "prometheus_otlp_basicauth" { + name = "prometheus-otlp-basicauth-k8smon-k8s-monitoring" + namespace = "default" + } + + // Destination: prometheus-otlp-bearer-token (otlp) + otelcol.receiver.prometheus "prometheus_otlp_bearer_token" { + output { + metrics = [otelcol.processor.attributes.prometheus_otlp_bearer_token.input] + } + } + otelcol.auth.bearer "prometheus_otlp_bearer_token" { + token = remote.kubernetes.secret.prometheus_otlp_bearer_token.data["bearerToken"] + } + + otelcol.processor.attributes "prometheus_otlp_bearer_token" { + action { + key = "cluster" + action = "upsert" + value = "auth-integration-test" + } + action { + key = "k8s.cluster.name" + action = "upsert" + value = "auth-integration-test" + } + action { + key = "destination" + action = "upsert" + value = "prometheus-otlp-bearer-token" + } + output { + metrics = [otelcol.processor.transform.prometheus_otlp_bearer_token.input] + logs = [otelcol.processor.transform.prometheus_otlp_bearer_token.input] + traces = [otelcol.processor.transform.prometheus_otlp_bearer_token.input] + } + } + + otelcol.processor.transform "prometheus_otlp_bearer_token" { + error_mode = "ignore" + + output { + metrics = [otelcol.processor.batch.prometheus_otlp_bearer_token.input] + } + } + + otelcol.processor.batch "prometheus_otlp_bearer_token" { + timeout = "2s" + send_batch_size = 8192 + send_batch_max_size = 0 + + output { + metrics = [otelcol.exporter.otlphttp.prometheus_otlp_bearer_token.input] + } + } + otelcol.exporter.otlphttp "prometheus_otlp_bearer_token" { + client { + endpoint = "http://nginx-bearer-token.prometheus.svc/otlp/api/v1/otlp" + auth = otelcol.auth.bearer.prometheus_otlp_bearer_token.handler + tls { + insecure = false + insecure_skip_verify = false + } + } + } + + remote.kubernetes.secret "prometheus_otlp_bearer_token" { + name = "prometheus-otlp-bearer-token-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Cluster Metrics + declare "cluster_metrics" { + argument "metrics_destinations" { + comment = "Must be a list of metric destinations where collected metrics should be forwarded to" + } + + remote.kubernetes.configmap "kubernetes" { + name = "k8smon-alloy-module-kubernetes" + namespace = "default" + } + + import.string "kubernetes" { + content = remote.kubernetes.configmap.kubernetes.data["core_metrics.alloy"] + } + + kubernetes.kubelet "scrape" { + clustering = true + keep_metrics = "up|container_cpu_usage_seconds_total|kubelet_certificate_manager_client_expiration_renew_errors|kubelet_certificate_manager_client_ttl_seconds|kubelet_certificate_manager_server_ttl_seconds|kubelet_cgroup_manager_duration_seconds_bucket|kubelet_cgroup_manager_duration_seconds_count|kubelet_node_config_error|kubelet_node_name|kubelet_pleg_relist_duration_seconds_bucket|kubelet_pleg_relist_duration_seconds_count|kubelet_pleg_relist_interval_seconds_bucket|kubelet_pod_start_duration_seconds_bucket|kubelet_pod_start_duration_seconds_count|kubelet_pod_worker_duration_seconds_bucket|kubelet_pod_worker_duration_seconds_count|kubelet_running_container_count|kubelet_running_containers|kubelet_running_pod_count|kubelet_running_pods|kubelet_runtime_operations_errors_total|kubelet_runtime_operations_total|kubelet_server_expiration_renew_errors|kubelet_volume_stats_available_bytes|kubelet_volume_stats_capacity_bytes|kubelet_volume_stats_inodes|kubelet_volume_stats_inodes_used|kubernetes_build_info|namespace_workload_pod|rest_client_requests_total|storage_operation_duration_seconds_count|storage_operation_errors_total|volume_manager_total_volumes|kubernetes_build_info" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + } + cluster_metrics "feature" { + metrics_destinations = [ + prometheus.remote_write.prometheus_noauth.receiver, + prometheus.remote_write.prometheus_basicauth.receiver, + prometheus.remote_write.prometheus_bearer_token.receiver, + otelcol.receiver.prometheus.prometheus_otlp_noauth.receiver, + otelcol.receiver.prometheus.prometheus_otlp_basicauth.receiver, + otelcol.receiver.prometheus.prometheus_otlp_bearer_token.receiver, + ] + } + + // Self Reporting + prometheus.exporter.unix "kubernetes_monitoring_telemetry" { + set_collectors = ["textfile"] + textfile { + directory = "/etc/alloy" + } + } + + discovery.relabel "kubernetes_monitoring_telemetry" { + targets = prometheus.exporter.unix.kubernetes_monitoring_telemetry.targets + rule { + target_label = "instance" + action = "replace" + replacement = "k8smon" + } + rule { + target_label = "job" + action = "replace" + replacement = "integrations/kubernetes/kubernetes_monitoring_telemetry" + } + } + + prometheus.scrape "kubernetes_monitoring_telemetry" { + job_name = "integrations/kubernetes/kubernetes_monitoring_telemetry" + targets = discovery.relabel.kubernetes_monitoring_telemetry.output + scrape_interval = "1h" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kubernetes_monitoring_telemetry.receiver] + } + + prometheus.relabel "kubernetes_monitoring_telemetry" { + rule { + source_labels = ["__name__"] + regex = "grafana_kubernetes_monitoring_.*" + action = "keep" + } + forward_to = [ + prometheus.remote_write.prometheus_noauth.receiver, + prometheus.remote_write.prometheus_basicauth.receiver, + prometheus.remote_write.prometheus_bearer_token.receiver, + ] + } + + livedebugging { + enabled = true + } + + + self-reporting-metric.prom: | + # HELP grafana_kubernetes_monitoring_build_info A metric to report the version of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_build_info gauge + grafana_kubernetes_monitoring_build_info{version="2.0.0-rc.5", namespace="default"} 1 + # HELP grafana_kubernetes_monitoring_feature_info A metric to report the enabled features of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_feature_info gauge + grafana_kubernetes_monitoring_feature_info{deployments="%!s(<nil>)", feature="clusterMetrics", sources="kubelet", version="1.0.0"} 1 +--- +# Source: k8s-monitoring/templates/alloy-modules-configmaps.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-module-kubernetes +data: + core_metrics.alloy: | + /* + Module: job-cadvisor + Description: Scrapes cadvisor + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "cadvisor" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all cadvisor metric (default: integrations/kubernetes/cadvisor)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.cadvisor.output + } + + // cadvisor service discovery for all of the nodes + discovery.kubernetes "cadvisor" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // cadvisor relabelings (pre-scrape) + discovery.relabel "cadvisor" { + targets = discovery.kubernetes.cadvisor.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes cadvisor metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/cadvisor" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // cadvisor scrape job + prometheus.scrape "cadvisor" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/cadvisor") + forward_to = [prometheus.relabel.cadvisor.receiver] + targets = discovery.relabel.cadvisor.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // cadvisor metric relabelings (post-scrape) + prometheus.relabel "cadvisor" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|container_(cpu_(cfs_(periods|throttled_periods)_total|usage_seconds_total)|fs_(reads|writes)(_bytes)?_total|memory_(cache|rss|swap|working_set_bytes)|network_(receive|transmit)_(bytes|packets(_dropped)?_total))|machine_memory_bytes)") + action = "keep" + } + + // Drop empty container labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","container"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*)@" + action = "drop" + } + + // Drop empty image labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","image"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*|container_network_.*)@" + action = "drop" + } + + // Normalizing unimportant labels (not deleting to continue satisfying <label>!="" checks) + rule { + source_labels = ["__name__", "boot_id"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "boot_id" + replacement = "NA" + } + rule { + source_labels = ["__name__", "system_uuid"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "system_uuid" + replacement = "NA" + } + + // Filter out non-physical devices/interfaces + rule { + source_labels = ["__name__", "device"] + separator = "@" + regex = "container_fs_.*@(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dasd.+)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_fs_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_fs_.*" + target_label = "__keepme" + replacement = "" + } + rule { + source_labels = ["__name__", "interface"] + separator = "@" + regex = "container_network_.*@(en[ospx][0-9].*|wlan[0-9].*|eth[0-9].*)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_network_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_network_.*" + target_label = "__keepme" + replacement = "" + } + } + } + + declare "resources" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all resources metric (default: integrations/kubernetes/kube-resources)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.resources.output + } + + // resources service discovery for all of the nodes + discovery.kubernetes "resources" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // resources relabelings (pre-scrape) + discovery.relabel "resources" { + targets = discovery.kubernetes.resources.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes resources metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/resource" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // resources scrape job + prometheus.scrape "resources" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-resources") + forward_to = [prometheus.relabel.resources.receiver] + targets = discovery.relabel.resources.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // resources metric relabelings (post-scrape) + prometheus.relabel "resources" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "kubelet" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kubelet metric (default: integrations/kubernetes/kube-kubelet)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.kubelet.output + } + + // kubelet service discovery for all of the nodes + discovery.kubernetes "kubelet" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // kubelet relabelings (pre-scrape) + discovery.relabel "kubelet" { + targets = discovery.kubernetes.kubelet.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes kubelet metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kubelet scrape job + prometheus.scrape "kubelet" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kubelet") + forward_to = [prometheus.relabel.kubelet.receiver] + targets = discovery.relabel.kubelet.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kubelet metric relabelings (post-scrape) + prometheus.relabel "kubelet" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "apiserver" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "namespaces" { + comment = "The namespaces to look for targets in (default: default)" + optional = true + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "port_name" { + comment = "The value of the label for the selector (default: https)" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kube-apiserver metrics (default: integrations/kubernetes/kube-apiserver)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + // drop metrics and les from kube-prometheus + // https://github.com/prometheus-operator/kube-prometheus/blob/main/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "drop_les" { + comment = "Regular expression of metric les label values to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.apiserver.output + } + + // kube-apiserver service discovery + discovery.kubernetes "apiserver" { + role = "service" + + selectors { + role = "service" + field = join(coalesce(argument.field_selectors.value, ["metadata.name=kubernetes"]), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, ["default"]) + } + } + + // apiserver relabelings (pre-scrape) + discovery.relabel "apiserver" { + targets = discovery.kubernetes.apiserver.targets + + // only keep targets with a matching port name + rule { + source_labels = ["__meta_kubernetes_service_port_name"] + regex = coalesce(argument.port_name.value, "https") + action = "keep" + } + + // set the namespace + rule { + action = "replace" + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the service_name + rule { + action = "replace" + source_labels = ["__meta_kubernetes_service_name"] + target_label = "service" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_service_label_app_kubernetes_io_name", + "__meta_kubernetes_service_label_k8s_app", + "__meta_kubernetes_service_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kube-apiserver scrape job + prometheus.scrape "apiserver" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-apiserver") + forward_to = [prometheus.relabel.apiserver.receiver] + targets = discovery.relabel.apiserver.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // apiserver metric relabelings (post-scrape) + prometheus.relabel "apiserver" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(((go|process)_.+)|kubelet_(pod_(worker|start)_latency_microseconds|cgroup_manager_latency_microseconds|pleg_relist_(latency|interval)_microseconds|runtime_operations(_latency_microseconds|_errors)?|eviction_stats_age_microseconds|device_plugin_(registration_count|alloc_latency_microseconds)|network_plugin_operations_latency_microseconds)|scheduler_(e2e_scheduling_latency_microseconds|scheduling_algorithm_(predicate|priority|preemption)_evaluation|scheduling_algorithm_latency_microseconds|binding_latency_microseconds|scheduling_latency_seconds)|apiserver_(request_(count|latencies(_summary)?)|dropped_requests|storage_(data_key_generation|transformation_(failures_total|latencies_microseconds))|proxy_tunnel_sync_latency_secs|longrunning_gauge|registered_watchers)|kubelet_docker_(operations(_latency_microseconds|_errors|_timeout)?)|reflector_(items_per_(list|watch)|list_duration_seconds|lists_total|short_watches_total|watch_duration_seconds|watches_total)|etcd_(helper_(cache_(hit|miss)_count|cache_entry_count|object_counts)|request_(cache_(get|add)_latencies_summary|latencies_summary)|debugging.*|disk.*|server.*)|transformation_(latencies_microseconds|failures_total)|(admission_quota_controller|APIServiceOpenAPIAggregationControllerQueue1|APIServiceRegistrationController|autoregister|AvailableConditionController|crd_(autoregistration_controller|Establishing|finalizer|naming_condition_controller|openapi_controller)|DiscoveryController|non_structural_schema_condition_controller|kubeproxy_sync_proxy_rules|rest_client_request_latency|storage_operation_(errors_total|status_count))(_.*)|apiserver_admission_(controller_admission|step_admission)_latencies_seconds_.*)") + action = "drop" + } + + // drop metrics whose name and le label match the drop_les regex + rule { + source_labels = [ + "__name__", + "le", + ] + regex = coalesce(argument.drop_les.value, "apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "probes" { + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "job_label" { + comment = "The job label to add for all probes metric (default: integrations/kubernetes/kube-probes)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.probes.output + } + + // probes service discovery for all of the nodes + discovery.kubernetes "probes" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // probes relabelings (pre-scrape) + discovery.relabel "probes" { + targets = discovery.kubernetes.probes.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes probes metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/probes" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // probes scrape job + prometheus.scrape "probes" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-probes") + forward_to = [prometheus.relabel.probes.receiver] + targets = discovery.relabel.probes.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // probes metric relabelings (post-scrape) + prometheus.relabel "probes" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "kube_dns" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [\"kube-system\"])" + optional = true + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"k8s-app=kube-dns\"])" + optional = true + } + argument "port_name" { + comment = "The of the port to scrape metrics from (default: metrics)" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kube_dns metric (default: integrations/kubernetes/kube-dns)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.kube_dns.output + } + + // kube_dns service discovery for all of the nodes + discovery.kubernetes "kube_dns" { + role = "endpoints" + + selectors { + role = "endpoints" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["k8s-app=kube-dns"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, ["kube-system"]) + } + } + + // kube_dns relabelings (pre-scrape) + discovery.relabel "kube_dns" { + targets = discovery.kubernetes.kube_dns.targets + + // keep only the specified metrics port name, and pods that are Running and ready + rule { + source_labels = [ + "__meta_kubernetes_pod_container_port_name", + "__meta_kubernetes_pod_phase", + "__meta_kubernetes_pod_ready", + ] + separator = "@" + regex = coalesce(argument.port_name.value, "metrics") + "@Running@true" + action = "keep" + } + + // drop any init containers + rule { + source_labels = ["__meta_kubernetes_pod_container_init"] + regex = "true" + action = "drop" + } + + // set the namespace label + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the pod label + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + + // set the container label + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + + // set a workload label + rule { + source_labels = [ + "__meta_kubernetes_pod_controller_kind", + "__meta_kubernetes_pod_controller_name", + ] + separator = "/" + target_label = "workload" + } + // remove the hash from the ReplicaSet + rule { + source_labels = ["workload"] + regex = "(ReplicaSet/.+)-.+" + target_label = "workload" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_name", + "__meta_kubernetes_pod_label_k8s_app", + "__meta_kubernetes_pod_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set the service label + rule { + source_labels = ["__meta_kubernetes_service_name"] + target_label = "service" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kube_dns scrape job + prometheus.scrape "kube_dns" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-dns") + forward_to = [prometheus.relabel.kube_dns.receiver] + targets = discovery.relabel.kube_dns.output + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kube_dns metric relabelings (post-scrape) + prometheus.relabel "kube_dns" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process|promhttp)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-metrics +subjects: + - kind: ServiceAccount + name: k8smon-alloy-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics-cluster + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + clusterIP: 'None' + publishNotReadyAddresses: true + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + ports: + # Do not include the -metrics suffix in the port name, otherwise metrics + # can be double-collected with the non-headless Service if it's also + # enabled. + # + # This service should only be used for clustering, and not metric + # collection. + - name: http + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + podManagementPolicy: Parallel + minReadySeconds: 10 + serviceName: k8smon-alloy-metrics + selector: + matchLabels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-metrics + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --cluster.enabled=true + - --cluster.join-addresses=k8smon-alloy-metrics-cluster + - --cluster.name="alloy-metrics" + - --stability.level=experimental + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/tests/integration/auto-instrumentation/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/auto-instrumentation/.rendered/output.yaml new file mode 100644 index 000000000..66aafaf38 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/auto-instrumentation/.rendered/output.yaml @@ -0,0 +1,1174 @@ +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-metrics + namespace: default + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/alloy-receiver/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-receiver + namespace: default + labels: + helm.sh/chart: alloy-receiver-0.10.0 + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-beyla + namespace: default + labels: + helm.sh/chart: beyla-1.4.13 + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: beyla + app.kubernetes.io/component: rbac +automountServiceAccountToken: true +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "localloki-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + tenantId: "MQ==" + username: "bG9raQ==" + password: "bG9raXBhc3N3b3Jk" +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-metrics + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "auto-instrumentation-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "auto-instrumentation-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + + // Feature: Auto-Instrumentation + declare "auto_instrumentation" { + argument "metrics_destinations" { + comment = "Must be a list of metric destinations where collected metrics should be forwarded to" + } + + discovery.kubernetes "beyla_pods" { + role = "pod" + namespaces { + own_namespace = true + } + selectors { + role = "pod" + label = "app.kubernetes.io/name=beyla" + } + } + + discovery.relabel "beyla_pods" { + targets = discovery.kubernetes.beyla_pods.targets + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + prometheus.scrape "beyla_applications" { + targets = discovery.relabel.beyla_pods.output + honor_labels = true + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = argument.metrics_destinations.value + } + + prometheus.scrape "beyla_internal" { + targets = discovery.relabel.beyla_pods.output + metrics_path = "/internal/metrics" + job_name = "integrations/beyla" + honor_labels = true + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = argument.metrics_destinations.value + } + } + auto_instrumentation "feature" { + metrics_destinations = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + // Self Reporting + prometheus.exporter.unix "kubernetes_monitoring_telemetry" { + set_collectors = ["textfile"] + textfile { + directory = "/etc/alloy" + } + } + + discovery.relabel "kubernetes_monitoring_telemetry" { + targets = prometheus.exporter.unix.kubernetes_monitoring_telemetry.targets + rule { + target_label = "instance" + action = "replace" + replacement = "k8smon" + } + rule { + target_label = "job" + action = "replace" + replacement = "integrations/kubernetes/kubernetes_monitoring_telemetry" + } + } + + prometheus.scrape "kubernetes_monitoring_telemetry" { + job_name = "integrations/kubernetes/kubernetes_monitoring_telemetry" + targets = discovery.relabel.kubernetes_monitoring_telemetry.output + scrape_interval = "1m" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kubernetes_monitoring_telemetry.receiver] + } + + prometheus.relabel "kubernetes_monitoring_telemetry" { + rule { + source_labels = ["__name__"] + regex = "grafana_kubernetes_monitoring_.*" + action = "keep" + } + forward_to = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + + + + self-reporting-metric.prom: | + # HELP grafana_kubernetes_monitoring_build_info A metric to report the version of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_build_info gauge + grafana_kubernetes_monitoring_build_info{version="2.0.0-rc.5", namespace="default"} 1 + # HELP grafana_kubernetes_monitoring_feature_info A metric to report the enabled features of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_feature_info gauge + grafana_kubernetes_monitoring_feature_info{feature="applicationObservability", protocols="otlpgrpc", version="1.0.0"} 1 + grafana_kubernetes_monitoring_feature_info{feature="autoInstrumentation", version="1.0.0"} 1 +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-receiver + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "auto-instrumentation-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "auto-instrumentation-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + // Destination: localLoki (loki) + otelcol.exporter.loki "localloki" { + forward_to = [loki.write.localloki.receiver] + } + + loki.write "localloki" { + endpoint { + url = "http://loki.loki.svc:3100/loki/api/v1/push" + tenant_id = nonsensitive(remote.kubernetes.secret.localloki.data["tenantId"]) + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localloki.data["username"]) + password = remote.kubernetes.secret.localloki.data["password"] + } + tls_config { + insecure_skip_verify = false + } + } + external_labels = { + cluster = "auto-instrumentation-integration-test", + "k8s_cluster_name" = "auto-instrumentation-integration-test", + } + } + + remote.kubernetes.secret "localloki" { + name = "localloki-k8smon-k8s-monitoring" + namespace = "default" + } + + // Destination: localTempo (otlp) + + otelcol.processor.attributes "localtempo" { + action { + key = "cluster" + action = "upsert" + value = "auto-instrumentation-integration-test" + } + action { + key = "k8s.cluster.name" + action = "upsert" + value = "auto-instrumentation-integration-test" + } + output { + metrics = [otelcol.processor.transform.localtempo.input] + logs = [otelcol.processor.transform.localtempo.input] + traces = [otelcol.processor.transform.localtempo.input] + } + } + + otelcol.processor.transform "localtempo" { + error_mode = "ignore" + + output { + metrics = [otelcol.processor.batch.localtempo.input] + logs = [otelcol.processor.batch.localtempo.input] + traces = [otelcol.processor.batch.localtempo.input] + } + } + + otelcol.processor.batch "localtempo" { + timeout = "2s" + send_batch_size = 8192 + send_batch_max_size = 0 + + output { + metrics = [otelcol.exporter.otlp.localtempo.input] + logs = [otelcol.exporter.otlp.localtempo.input] + traces = [otelcol.exporter.otlp.localtempo.input] + } + } + otelcol.exporter.otlp "localtempo" { + client { + endpoint = "tempo.tempo.svc:4317" + tls { + insecure = true + insecure_skip_verify = true + } + } + } + + // Feature: Application Observability + declare "application_observability" { + argument "metrics_destinations" { + comment = "Must be a list of metrics destinations where collected metrics should be forwarded to" + } + + argument "logs_destinations" { + comment = "Must be a list of log destinations where collected logs should be forwarded to" + } + + argument "traces_destinations" { + comment = "Must be a list of trace destinations where collected trace should be forwarded to" + } + + // Receivers --> Resource Detection Processor + otelcol.receiver.otlp "receiver" { + grpc { + endpoint = "0.0.0.0:4317" + } + debug_metrics { + disable_high_cardinality_metrics = true + } + output { + metrics = [otelcol.processor.resourcedetection.default.input] + logs = [otelcol.processor.resourcedetection.default.input] + traces = [otelcol.processor.resourcedetection.default.input] + } + } + + // Resource Detection Processor --> K8s Attribute Processor + otelcol.processor.resourcedetection "default" { + detectors = ["env", "system"] + system { + hostname_sources = ["os"] + } + + output { + metrics = [otelcol.processor.k8sattributes.default.input] + logs = [otelcol.processor.k8sattributes.default.input] + traces = [otelcol.processor.k8sattributes.default.input] + } + } + + // K8s Attribute Processor --> Transform Processor + // Resource Detection Processor Traces --> Host Info Connector + otelcol.processor.k8sattributes "default" { + extract { + metadata = ["k8s.namespace.name","k8s.pod.name","k8s.deployment.name","k8s.statefulset.name","k8s.daemonset.name","k8s.cronjob.name","k8s.job.name","k8s.node.name","k8s.pod.uid","k8s.pod.start_time"] + } + pod_association { + source { + from = "connection" + } + } + + output { + metrics = [otelcol.processor.transform.default.input] + logs = [otelcol.processor.transform.default.input] + traces = [otelcol.processor.transform.default.input, otelcol.connector.host_info.default.input] + } + } + // Host Info Connector --> Batch Processor + otelcol.connector.host_info "default" { + host_identifiers = [ "k8s.node.name" ] + + output { + metrics = [otelcol.processor.batch.default.input] + } + } + + + // Transform Processor --> Batch Processor + otelcol.processor.transform "default" { + error_mode = "ignore" + log_statements { + context = "resource" + statements = [ + "set(attributes[\"pod\"], attributes[\"k8s.pod.name\"])", + "set(attributes[\"namespace\"], attributes[\"k8s.namespace.name\"])", + "set(attributes[\"loki.resource.labels\"], \"cluster, namespace, job, pod\")", + ] + } + + output { + metrics = [otelcol.processor.batch.default.input] + logs = [otelcol.processor.batch.default.input] + traces = [otelcol.processor.batch.default.input] + } + } + + // Batch Processor --> Destinations + otelcol.processor.batch "default" { + output { + metrics = argument.metrics_destinations.value + logs = argument.logs_destinations.value + traces = argument.traces_destinations.value + } + } + } + application_observability "feature" { + metrics_destinations = [ + otelcol.exporter.prometheus.localprometheus.input, + ] + logs_destinations = [ + otelcol.exporter.loki.localloki.input, + ] + traces_destinations = [ + otelcol.processor.attributes.localtempo.input, + ] + } +--- +# Source: k8s-monitoring/templates/beyla-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-beyla + namespace: default + labels: + helm.sh/chart: beyla-1.4.13 + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: beyla + app.kubernetes.io/component: config +data: + beyla-config.yml: |- + attributes: + kubernetes: + enable: true + cluster_name: auto-instrumentation-integration-test + select: + beyla_network_flow_bytes: + include: + - 'k8s.src.owner.type' + - 'k8s.dst.owner.type' + - 'direction' + filter: + network: + k8s_dst_owner_name: + not_match: '{kube*,*jaeger-agent*,*prometheus*,*promtail*,*grafana-agent*}' + k8s_src_owner_name: + not_match: '{kube*,*jaeger-agent*,*prometheus*,*promtail*,*grafana-agent*}' + discovery: + services: + - k8s_namespace: . + exclude_services: + - exe_path: ".*alloy.*|.*otelcol.*|.*beyla.*" + internal_metrics: + prometheus: + port: 9090 + path: /internal/metrics + prometheus_export: + port: 9090 + path: /metrics + features: + - application + - network + - application_service_graph + - application_span + otel_traces_export: + endpoint: http://k8smon-alloy-receiver.default.svc.cluster.local:4317 +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-receiver + labels: + helm.sh/chart: alloy-receiver-0.10.0 + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/cluster-role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-beyla + labels: + helm.sh/chart: beyla-1.4.13 + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: beyla + app.kubernetes.io/component: rbac +rules: + - apiGroups: [ "apps" ] + resources: [ "replicasets" ] + verbs: [ "list", "watch" ] + - apiGroups: [ "" ] + resources: [ "pods", "services", "nodes" ] + verbs: [ "list", "watch", "get" ] +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-metrics +subjects: + - kind: ServiceAccount + name: k8smon-alloy-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-receiver/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-receiver + labels: + helm.sh/chart: alloy-receiver-0.10.0 + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-receiver +subjects: + - kind: ServiceAccount + name: k8smon-alloy-receiver + namespace: default +--- +# Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/cluster-role-binding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-beyla + labels: + helm.sh/chart: beyla-1.4.13 + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: beyla + app.kubernetes.io/component: rbac +subjects: + - kind: ServiceAccount + name: k8smon-beyla + namespace: default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-beyla +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics-cluster + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + clusterIP: 'None' + publishNotReadyAddresses: true + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + ports: + # Do not include the -metrics suffix in the port name, otherwise metrics + # can be double-collected with the non-headless Service if it's also + # enabled. + # + # This service should only be used for clustering, and not metric + # collection. + - name: http + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-receiver/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-receiver + labels: + helm.sh/chart: alloy-receiver-0.10.0 + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" + - name: otlp-grpc + port: 4317 + targetPort: 4317 + protocol: TCP +--- +# Source: k8s-monitoring/charts/alloy-receiver/templates/controllers/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-alloy-receiver + labels: + helm.sh/chart: alloy-receiver-0.10.0 + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + labels: + app.kubernetes.io/name: alloy-receiver + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-receiver + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + - containerPort: 4317 + name: otlp-grpc + protocol: TCP + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-receiver +--- +# Source: k8s-monitoring/charts/autoInstrumentation/charts/beyla/templates/daemon-set.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-beyla + namespace: default + labels: + helm.sh/chart: beyla-1.4.13 + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: beyla + app.kubernetes.io/component: workload +spec: + selector: + matchLabels: + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + updateStrategy: + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b + k8s.grafana.com/logs.job: integrations/beyla + labels: + helm.sh/chart: beyla-1.4.13 + app.kubernetes.io/name: beyla + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.8" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: beyla + app.kubernetes.io/component: workload + spec: + serviceAccountName: k8smon-beyla + hostPID: true + containers: + - name: beyla + image: docker.io/grafana/beyla:1.8.8 + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + ports: + - name: metrics + containerPort: 9090 + protocol: TCP + env: + - name: BEYLA_CONFIG_PATH + value: "/etc/beyla/config/beyla-config.yml" + volumeMounts: + - mountPath: /etc/beyla/config + name: beyla-config + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: beyla-config + configMap: + name: k8smon-beyla +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + podManagementPolicy: Parallel + minReadySeconds: 10 + serviceName: k8smon-alloy-metrics + selector: + matchLabels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-metrics + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --cluster.enabled=true + - --cluster.join-addresses=k8smon-alloy-metrics-cluster + - --cluster.name="alloy-metrics" + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/tests/integration/auto-instrumentation/README.md b/charts/k8s-monitoring/tests/integration/auto-instrumentation/README.md new file mode 100644 index 000000000..3e82f0505 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/auto-instrumentation/README.md @@ -0,0 +1,4 @@ +# Auto-Instrumentation Integration Test + +This test utilizes both the Auto-Instrumentation and Application Observability features to test that both metrics and +traces are being collected from Beyla. diff --git a/charts/k8s-monitoring/tests/integration/cluster-monitoring/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/cluster-monitoring/.rendered/output.yaml new file mode 100644 index 000000000..b2fdc3a99 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/cluster-monitoring/.rendered/output.yaml @@ -0,0 +1,4137 @@ +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-logs + namespace: default + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-metrics + namespace: default + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-singleton + namespace: default + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-kepler + namespace: default + labels: + helm.sh/chart: kepler-0.5.11 + app.kubernetes.io/name: kepler + app.kubernetes.io/component: exporter + app.kubernetes.io/version: "release-0.7.12" + app.kubernetes.io/managed-by: Helm +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +automountServiceAccountToken: true +metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + name: k8smon-kube-state-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-node-exporter + namespace: default + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon +automountServiceAccountToken: false +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-opencost + namespace: default + labels: + helm.sh/chart: opencost-1.42.3 + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.113.0" + app.kubernetes.io/part-of: opencost + app.kubernetes.io/managed-by: Helm +automountServiceAccountToken: true +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "localprometheus-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + username: "cHJvbXVzZXI=" + password: "cHJvbWV0aGV1c3Bhc3N3b3Jk" +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "localloki-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + tenantId: "MQ==" + username: "bG9raQ==" + password: "bG9raXBhc3N3b3Jk" +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon +data: + config.yml: | + collectors: + enabled: cpu,cs,container,logical_disk,memory,net,os + collector: + service: + services-where: "Name='containerd' or Name='kubelet'" +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-metrics + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "https://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localprometheus.data["username"]) + password = remote.kubernetes.secret.localprometheus.data["password"] + } + tls_config { + insecure_skip_verify = true + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "cluster-monitoring-feature-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "cluster-monitoring-feature-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + + remote.kubernetes.secret "localprometheus" { + name = "localprometheus-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Cluster Metrics + declare "cluster_metrics" { + argument "metrics_destinations" { + comment = "Must be a list of metric destinations where collected metrics should be forwarded to" + } + + remote.kubernetes.configmap "kubernetes" { + name = "k8smon-alloy-module-kubernetes" + namespace = "default" + } + + import.string "kubernetes" { + content = remote.kubernetes.configmap.kubernetes.data["core_metrics.alloy"] + } + + kubernetes.kubelet "scrape" { + clustering = true + keep_metrics = "up|container_cpu_usage_seconds_total|kubelet_certificate_manager_client_expiration_renew_errors|kubelet_certificate_manager_client_ttl_seconds|kubelet_certificate_manager_server_ttl_seconds|kubelet_cgroup_manager_duration_seconds_bucket|kubelet_cgroup_manager_duration_seconds_count|kubelet_node_config_error|kubelet_node_name|kubelet_pleg_relist_duration_seconds_bucket|kubelet_pleg_relist_duration_seconds_count|kubelet_pleg_relist_interval_seconds_bucket|kubelet_pod_start_duration_seconds_bucket|kubelet_pod_start_duration_seconds_count|kubelet_pod_worker_duration_seconds_bucket|kubelet_pod_worker_duration_seconds_count|kubelet_running_container_count|kubelet_running_containers|kubelet_running_pod_count|kubelet_running_pods|kubelet_runtime_operations_errors_total|kubelet_runtime_operations_total|kubelet_server_expiration_renew_errors|kubelet_volume_stats_available_bytes|kubelet_volume_stats_capacity_bytes|kubelet_volume_stats_inodes|kubelet_volume_stats_inodes_used|kubernetes_build_info|namespace_workload_pod|rest_client_requests_total|storage_operation_duration_seconds_count|storage_operation_errors_total|volume_manager_total_volumes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + kubernetes.resources "scrape" { + clustering = true + job_label = "integrations/kubernetes/resources" + keep_metrics = "up|node_cpu_usage_seconds_total|node_memory_working_set_bytes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + kubernetes.cadvisor "scrape" { + clustering = true + keep_metrics = "up|container_cpu_cfs_periods_total|container_cpu_cfs_throttled_periods_total|container_cpu_usage_seconds_total|container_fs_reads_bytes_total|container_fs_reads_total|container_fs_writes_bytes_total|container_fs_writes_total|container_memory_cache|container_memory_rss|container_memory_swap|container_memory_working_set_bytes|container_network_receive_bytes_total|container_network_receive_packets_dropped_total|container_network_receive_packets_total|container_network_transmit_bytes_total|container_network_transmit_packets_dropped_total|container_network_transmit_packets_total|machine_memory_bytes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = [prometheus.relabel.cadvisor.receiver] + } + + prometheus.relabel "cadvisor" { + max_cache_size = 100000 + // Drop empty container labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","container"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*)@" + action = "drop" + } + // Drop empty image labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","image"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*|container_network_.*)@" + action = "drop" + } + // Normalizing unimportant labels (not deleting to continue satisfying <label>!="" checks) + rule { + source_labels = ["__name__", "boot_id"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "boot_id" + replacement = "NA" + } + rule { + source_labels = ["__name__", "system_uuid"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "system_uuid" + replacement = "NA" + } + // Filter out non-physical devices/interfaces + rule { + source_labels = ["__name__", "device"] + separator = "@" + regex = "container_fs_.*@(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dasd.+)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_fs_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_fs_.*" + target_label = "__keepme" + replacement = "" + } + rule { + source_labels = ["__name__", "interface"] + separator = "@" + regex = "container_network_.*@(en[ospx][0-9].*|wlan[0-9].*|eth[0-9].*)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_network_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_network_.*" + target_label = "__keepme" + replacement = "" + } + forward_to = argument.metrics_destinations.value + } + + remote.kubernetes.configmap "kube_state_metrics" { + name = "k8smon-alloy-module-kubernetes" + namespace = "default" + } + + import.string "kube_state_metrics" { + content = remote.kubernetes.configmap.kube_state_metrics.data["kube-state-metrics_metrics.alloy"] + } + + kube_state_metrics.kubernetes "targets" { + label_selectors = [ + "app.kubernetes.io/name=kube-state-metrics", + "release=k8smon", + ] + } + + kube_state_metrics.scrape "metrics" { + targets = kube_state_metrics.kubernetes.targets.output + clustering = true + keep_metrics = "up|kube_daemonset.*|kube_deployment_metadata_generation|kube_deployment_spec_replicas|kube_deployment_status_observed_generation|kube_deployment_status_replicas_available|kube_deployment_status_replicas_updated|kube_horizontalpodautoscaler_spec_max_replicas|kube_horizontalpodautoscaler_spec_min_replicas|kube_horizontalpodautoscaler_status_current_replicas|kube_horizontalpodautoscaler_status_desired_replicas|kube_job.*|kube_namespace_status_phase|kube_node.*|kube_persistentvolumeclaim_resource_requests_storage_bytes|kube_pod_container_info|kube_pod_container_resource_limits|kube_pod_container_resource_requests|kube_pod_container_status_last_terminated_reason|kube_pod_container_status_restarts_total|kube_pod_container_status_waiting_reason|kube_pod_info|kube_pod_owner|kube_pod_start_time|kube_pod_status_phase|kube_pod_status_reason|kube_replicaset.*|kube_resourcequota|kube_statefulset.*" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + remote.kubernetes.configmap "node_exporter" { + name = "k8smon-alloy-module-system" + namespace = "default" + } + + import.string "node_exporter" { + content = remote.kubernetes.configmap.node_exporter.data["node-exporter_metrics.alloy"] + } + + node_exporter.kubernetes "targets" { + label_selectors = [ + "app.kubernetes.io/name=node-exporter", + "release=k8smon", + ] + } + + discovery.relabel "node_exporter" { + targets = node_exporter.kubernetes.targets.output + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + node_exporter.scrape "metrics" { + targets = discovery.relabel.node_exporter.output + job_label = "integrations/node_exporter" + clustering = true + keep_metrics = "up|node_cpu.*|node_exporter_build_info|node_filesystem.*|node_memory.*|node_network_receive_bytes_total|node_network_receive_drop_total|node_network_transmit_bytes_total|node_network_transmit_drop_total|process_cpu_seconds_total|process_resident_memory_bytes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "windows_exporter_pods" { + role = "pod" + namespaces { + names = ["default"] + } + selectors { + role = "pod" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" + } + } + + discovery.relabel "windows_exporter" { + targets = discovery.kubernetes.windows_exporter_pods.targets + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + prometheus.scrape "windows_exporter" { + job_name = "integrations/windows-exporter" + targets = discovery.relabel.windows_exporter.output + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.windows_exporter.receiver] + } + + prometheus.relabel "windows_exporter" { + max_cache_size = 100000 + rule { + source_labels = ["__name__"] + regex = "up|windows_.*|node_cpu_seconds_total|node_filesystem_size_bytes|node_filesystem_avail_bytes|container_cpu_usage_seconds_total" + action = "keep" + } + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "kepler" { + role = "pod" + namespaces { + own_namespace = true + } + selectors { + role = "pod" + label = "app.kubernetes.io/name=kepler" + } + } + + discovery.relabel "kepler" { + targets = discovery.kubernetes.kepler.targets + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + prometheus.scrape "kepler" { + targets = discovery.relabel.kepler.output + job_name = "integrations/kepler" + honor_labels = true + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kepler.receiver] + } + + prometheus.relabel "kepler" { + max_cache_size = 100000 + rule { + source_labels = ["__name__"] + regex = "up|kepler_.*" + action = "keep" + } + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "opencost" { + role = "pod" + namespaces { + own_namespace = true + } + selectors { + role = "pod" + label = "app.kubernetes.io/name=opencost" + } + } + + discovery.relabel "opencost" { + targets = discovery.kubernetes.opencost.targets + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + prometheus.scrape "opencost" { + targets = discovery.relabel.opencost.output + job_name = "integrations/opencost" + honor_labels = true + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.opencost.receiver] + } + + prometheus.relabel "opencost" { + max_cache_size = 100000 + rule { + source_labels = ["__name__"] + regex = "up|container_cpu_allocation|container_gpu_allocation|container_memory_allocation_bytes|deployment_match_labels|kubecost_cluster_info|kubecost_cluster_management_cost|kubecost_cluster_memory_working_set_bytes|kubecost_http_requests_total|kubecost_http_response_size_bytes|kubecost_http_response_time_seconds|kubecost_load_balancer_cost|kubecost_network_internet_egress_cost|kubecost_network_region_egress_cost|kubecost_network_zone_egress_cost|kubecost_node_is_spot|node_cpu_hourly_cost|node_gpu_count|node_gpu_hourly_cost|node_ram_hourly_cost|node_total_hourly_cost|opencost_build_info|pod_pvc_allocation|pv_hourly_cost|service_selector_labels|statefulSet_match_labels" + action = "keep" + } + forward_to = argument.metrics_destinations.value + } + } + cluster_metrics "feature" { + metrics_destinations = [ + prometheus.remote_write.localprometheus.receiver, + ] + } +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-singleton + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "https://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localprometheus.data["username"]) + password = remote.kubernetes.secret.localprometheus.data["password"] + } + tls_config { + insecure_skip_verify = true + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "cluster-monitoring-feature-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "cluster-monitoring-feature-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + + remote.kubernetes.secret "localprometheus" { + name = "localprometheus-k8smon-k8s-monitoring" + namespace = "default" + } + + // Destination: localLoki (loki) + otelcol.exporter.loki "localloki" { + forward_to = [loki.write.localloki.receiver] + } + + loki.write "localloki" { + endpoint { + url = "http://loki.loki.svc:3100/loki/api/v1/push" + tenant_id = nonsensitive(remote.kubernetes.secret.localloki.data["tenantId"]) + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localloki.data["username"]) + password = remote.kubernetes.secret.localloki.data["password"] + } + tls_config { + insecure_skip_verify = false + } + } + external_labels = { + cluster = "cluster-monitoring-feature-test", + "k8s_cluster_name" = "cluster-monitoring-feature-test", + } + } + + remote.kubernetes.secret "localloki" { + name = "localloki-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Cluster Events + declare "cluster_events" { + argument "logs_destinations" { + comment = "Must be a list of log destinations where collected logs should be forwarded to" + } + + loki.source.kubernetes_events "cluster_events" { + job_name = "integrations/kubernetes/eventhandler" + log_format = "logfmt" + forward_to = argument.logs_destinations.value + } + } + cluster_events "feature" { + logs_destinations = [ + loki.write.localloki.receiver, + ] + } + + // Self Reporting + prometheus.exporter.unix "kubernetes_monitoring_telemetry" { + set_collectors = ["textfile"] + textfile { + directory = "/etc/alloy" + } + } + + discovery.relabel "kubernetes_monitoring_telemetry" { + targets = prometheus.exporter.unix.kubernetes_monitoring_telemetry.targets + rule { + target_label = "instance" + action = "replace" + replacement = "k8smon" + } + rule { + target_label = "job" + action = "replace" + replacement = "integrations/kubernetes/kubernetes_monitoring_telemetry" + } + } + + prometheus.scrape "kubernetes_monitoring_telemetry" { + job_name = "integrations/kubernetes/kubernetes_monitoring_telemetry" + targets = discovery.relabel.kubernetes_monitoring_telemetry.output + scrape_interval = "1m" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kubernetes_monitoring_telemetry.receiver] + } + + prometheus.relabel "kubernetes_monitoring_telemetry" { + rule { + source_labels = ["__name__"] + regex = "grafana_kubernetes_monitoring_.*" + action = "keep" + } + forward_to = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + + + + self-reporting-metric.prom: | + # HELP grafana_kubernetes_monitoring_build_info A metric to report the version of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_build_info gauge + grafana_kubernetes_monitoring_build_info{version="2.0.0-rc.5", namespace="default"} 1 + # HELP grafana_kubernetes_monitoring_feature_info A metric to report the enabled features of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_feature_info gauge + grafana_kubernetes_monitoring_feature_info{deployments="kube-state-metrics,node-exporter,windows-exporter,kepler", feature="clusterMetrics", sources="kubelet,kubeletResource,cadvisor,kube-state-metrics,node-exporter,windows-exporter,kepler", version="1.0.0"} 1 + grafana_kubernetes_monitoring_feature_info{feature="clusterEvents", version="1.0.0"} 1 + grafana_kubernetes_monitoring_feature_info{feature="podLogs", method="volumes", version="1.0.0"} 1 +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-logs + namespace: default +data: + config.alloy: |- + // Destination: localLoki (loki) + otelcol.exporter.loki "localloki" { + forward_to = [loki.write.localloki.receiver] + } + + loki.write "localloki" { + endpoint { + url = "http://loki.loki.svc:3100/loki/api/v1/push" + tenant_id = nonsensitive(remote.kubernetes.secret.localloki.data["tenantId"]) + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localloki.data["username"]) + password = remote.kubernetes.secret.localloki.data["password"] + } + tls_config { + insecure_skip_verify = false + } + } + external_labels = { + cluster = "cluster-monitoring-feature-test", + "k8s_cluster_name" = "cluster-monitoring-feature-test", + } + } + + remote.kubernetes.secret "localloki" { + name = "localloki-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Pod Logs + declare "pod_logs" { + argument "logs_destinations" { + comment = "Must be a list of log destinations where collected logs should be forwarded to" + } + + discovery.relabel "filtered_pods" { + targets = discovery.kubernetes.pods.targets + rule { + source_labels = ["__meta_kubernetes_namespace"] + action = "replace" + target_label = "namespace" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + action = "replace" + target_label = "pod" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + action = "replace" + target_label = "container" + } + rule { + source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"] + separator = "/" + action = "replace" + replacement = "$1" + target_label = "job" + } + rule { + source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"] + regex = "(.+)" + target_label = "app_kubernetes_io_name" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_k8s_grafana_com_logs_job"] + regex = "(.+)" + target_label = "job" + } + + // set the container runtime as a label + rule { + action = "replace" + source_labels = ["__meta_kubernetes_pod_container_id"] + regex = "^(\\S+):\\/\\/.+$" + replacement = "$1" + target_label = "tmp_container_runtime" + } + } + + discovery.kubernetes "pods" { + role = "pod" + selectors { + role = "pod" + field = "spec.nodeName=" + env("HOSTNAME") + } + } + + discovery.relabel "filtered_pods_with_paths" { + targets = discovery.relabel.filtered_pods.output + + rule { + source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"] + separator = "/" + action = "replace" + replacement = "/var/log/pods/*$1/*.log" + target_label = "__path__" + } + } + + local.file_match "pod_logs" { + path_targets = discovery.relabel.filtered_pods_with_paths.output + } + + loki.source.file "pod_logs" { + targets = local.file_match.pod_logs.targets + forward_to = [loki.process.pod_logs.receiver] + } + + loki.process "pod_logs" { + stage.match { + selector = "{tmp_container_runtime=~\"containerd|cri-o\"}" + // the cri processing stage extracts the following k/v pairs: log, stream, time, flags + stage.cri {} + + // Set the extract flags and stream values as labels + stage.labels { + values = { + flags = "", + stream = "", + } + } + } + + stage.match { + selector = "{tmp_container_runtime=\"docker\"}" + // the docker processing stage extracts the following k/v pairs: log, stream, time + stage.docker {} + + // Set the extract stream value as a label + stage.labels { + values = { + stream = "", + } + } + } + + // Drop the filename label, since it's not really useful in the context of Kubernetes, where we already have cluster, + // namespace, pod, and container labels. Drop any structured metadata. Also drop the temporary + // container runtime label as it is no longer needed. + stage.label_drop { + values = [ + "filename", + "tmp_container_runtime", + ] + } + forward_to = argument.logs_destinations.value + } + } + pod_logs "feature" { + logs_destinations = [ + loki.write.localloki.receiver, + ] + } +--- +# Source: k8s-monitoring/templates/alloy-modules-configmaps.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-module-kubernetes +data: + core_metrics.alloy: | + /* + Module: job-cadvisor + Description: Scrapes cadvisor + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "cadvisor" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all cadvisor metric (default: integrations/kubernetes/cadvisor)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.cadvisor.output + } + + // cadvisor service discovery for all of the nodes + discovery.kubernetes "cadvisor" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // cadvisor relabelings (pre-scrape) + discovery.relabel "cadvisor" { + targets = discovery.kubernetes.cadvisor.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes cadvisor metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/cadvisor" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // cadvisor scrape job + prometheus.scrape "cadvisor" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/cadvisor") + forward_to = [prometheus.relabel.cadvisor.receiver] + targets = discovery.relabel.cadvisor.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // cadvisor metric relabelings (post-scrape) + prometheus.relabel "cadvisor" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|container_(cpu_(cfs_(periods|throttled_periods)_total|usage_seconds_total)|fs_(reads|writes)(_bytes)?_total|memory_(cache|rss|swap|working_set_bytes)|network_(receive|transmit)_(bytes|packets(_dropped)?_total))|machine_memory_bytes)") + action = "keep" + } + + // Drop empty container labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","container"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*)@" + action = "drop" + } + + // Drop empty image labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","image"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*|container_network_.*)@" + action = "drop" + } + + // Normalizing unimportant labels (not deleting to continue satisfying <label>!="" checks) + rule { + source_labels = ["__name__", "boot_id"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "boot_id" + replacement = "NA" + } + rule { + source_labels = ["__name__", "system_uuid"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "system_uuid" + replacement = "NA" + } + + // Filter out non-physical devices/interfaces + rule { + source_labels = ["__name__", "device"] + separator = "@" + regex = "container_fs_.*@(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dasd.+)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_fs_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_fs_.*" + target_label = "__keepme" + replacement = "" + } + rule { + source_labels = ["__name__", "interface"] + separator = "@" + regex = "container_network_.*@(en[ospx][0-9].*|wlan[0-9].*|eth[0-9].*)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_network_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_network_.*" + target_label = "__keepme" + replacement = "" + } + } + } + + declare "resources" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all resources metric (default: integrations/kubernetes/kube-resources)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.resources.output + } + + // resources service discovery for all of the nodes + discovery.kubernetes "resources" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // resources relabelings (pre-scrape) + discovery.relabel "resources" { + targets = discovery.kubernetes.resources.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes resources metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/resource" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // resources scrape job + prometheus.scrape "resources" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-resources") + forward_to = [prometheus.relabel.resources.receiver] + targets = discovery.relabel.resources.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // resources metric relabelings (post-scrape) + prometheus.relabel "resources" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "kubelet" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kubelet metric (default: integrations/kubernetes/kube-kubelet)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.kubelet.output + } + + // kubelet service discovery for all of the nodes + discovery.kubernetes "kubelet" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // kubelet relabelings (pre-scrape) + discovery.relabel "kubelet" { + targets = discovery.kubernetes.kubelet.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes kubelet metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kubelet scrape job + prometheus.scrape "kubelet" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kubelet") + forward_to = [prometheus.relabel.kubelet.receiver] + targets = discovery.relabel.kubelet.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kubelet metric relabelings (post-scrape) + prometheus.relabel "kubelet" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "apiserver" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "namespaces" { + comment = "The namespaces to look for targets in (default: default)" + optional = true + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "port_name" { + comment = "The value of the label for the selector (default: https)" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kube-apiserver metrics (default: integrations/kubernetes/kube-apiserver)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + // drop metrics and les from kube-prometheus + // https://github.com/prometheus-operator/kube-prometheus/blob/main/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "drop_les" { + comment = "Regular expression of metric les label values to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.apiserver.output + } + + // kube-apiserver service discovery + discovery.kubernetes "apiserver" { + role = "service" + + selectors { + role = "service" + field = join(coalesce(argument.field_selectors.value, ["metadata.name=kubernetes"]), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, ["default"]) + } + } + + // apiserver relabelings (pre-scrape) + discovery.relabel "apiserver" { + targets = discovery.kubernetes.apiserver.targets + + // only keep targets with a matching port name + rule { + source_labels = ["__meta_kubernetes_service_port_name"] + regex = coalesce(argument.port_name.value, "https") + action = "keep" + } + + // set the namespace + rule { + action = "replace" + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the service_name + rule { + action = "replace" + source_labels = ["__meta_kubernetes_service_name"] + target_label = "service" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_service_label_app_kubernetes_io_name", + "__meta_kubernetes_service_label_k8s_app", + "__meta_kubernetes_service_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kube-apiserver scrape job + prometheus.scrape "apiserver" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-apiserver") + forward_to = [prometheus.relabel.apiserver.receiver] + targets = discovery.relabel.apiserver.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // apiserver metric relabelings (post-scrape) + prometheus.relabel "apiserver" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(((go|process)_.+)|kubelet_(pod_(worker|start)_latency_microseconds|cgroup_manager_latency_microseconds|pleg_relist_(latency|interval)_microseconds|runtime_operations(_latency_microseconds|_errors)?|eviction_stats_age_microseconds|device_plugin_(registration_count|alloc_latency_microseconds)|network_plugin_operations_latency_microseconds)|scheduler_(e2e_scheduling_latency_microseconds|scheduling_algorithm_(predicate|priority|preemption)_evaluation|scheduling_algorithm_latency_microseconds|binding_latency_microseconds|scheduling_latency_seconds)|apiserver_(request_(count|latencies(_summary)?)|dropped_requests|storage_(data_key_generation|transformation_(failures_total|latencies_microseconds))|proxy_tunnel_sync_latency_secs|longrunning_gauge|registered_watchers)|kubelet_docker_(operations(_latency_microseconds|_errors|_timeout)?)|reflector_(items_per_(list|watch)|list_duration_seconds|lists_total|short_watches_total|watch_duration_seconds|watches_total)|etcd_(helper_(cache_(hit|miss)_count|cache_entry_count|object_counts)|request_(cache_(get|add)_latencies_summary|latencies_summary)|debugging.*|disk.*|server.*)|transformation_(latencies_microseconds|failures_total)|(admission_quota_controller|APIServiceOpenAPIAggregationControllerQueue1|APIServiceRegistrationController|autoregister|AvailableConditionController|crd_(autoregistration_controller|Establishing|finalizer|naming_condition_controller|openapi_controller)|DiscoveryController|non_structural_schema_condition_controller|kubeproxy_sync_proxy_rules|rest_client_request_latency|storage_operation_(errors_total|status_count))(_.*)|apiserver_admission_(controller_admission|step_admission)_latencies_seconds_.*)") + action = "drop" + } + + // drop metrics whose name and le label match the drop_les regex + rule { + source_labels = [ + "__name__", + "le", + ] + regex = coalesce(argument.drop_les.value, "apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "probes" { + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "job_label" { + comment = "The job label to add for all probes metric (default: integrations/kubernetes/kube-probes)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.probes.output + } + + // probes service discovery for all of the nodes + discovery.kubernetes "probes" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // probes relabelings (pre-scrape) + discovery.relabel "probes" { + targets = discovery.kubernetes.probes.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes probes metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/probes" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // probes scrape job + prometheus.scrape "probes" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-probes") + forward_to = [prometheus.relabel.probes.receiver] + targets = discovery.relabel.probes.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // probes metric relabelings (post-scrape) + prometheus.relabel "probes" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "kube_dns" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [\"kube-system\"])" + optional = true + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"k8s-app=kube-dns\"])" + optional = true + } + argument "port_name" { + comment = "The of the port to scrape metrics from (default: metrics)" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kube_dns metric (default: integrations/kubernetes/kube-dns)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.kube_dns.output + } + + // kube_dns service discovery for all of the nodes + discovery.kubernetes "kube_dns" { + role = "endpoints" + + selectors { + role = "endpoints" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["k8s-app=kube-dns"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, ["kube-system"]) + } + } + + // kube_dns relabelings (pre-scrape) + discovery.relabel "kube_dns" { + targets = discovery.kubernetes.kube_dns.targets + + // keep only the specified metrics port name, and pods that are Running and ready + rule { + source_labels = [ + "__meta_kubernetes_pod_container_port_name", + "__meta_kubernetes_pod_phase", + "__meta_kubernetes_pod_ready", + ] + separator = "@" + regex = coalesce(argument.port_name.value, "metrics") + "@Running@true" + action = "keep" + } + + // drop any init containers + rule { + source_labels = ["__meta_kubernetes_pod_container_init"] + regex = "true" + action = "drop" + } + + // set the namespace label + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the pod label + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + + // set the container label + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + + // set a workload label + rule { + source_labels = [ + "__meta_kubernetes_pod_controller_kind", + "__meta_kubernetes_pod_controller_name", + ] + separator = "/" + target_label = "workload" + } + // remove the hash from the ReplicaSet + rule { + source_labels = ["workload"] + regex = "(ReplicaSet/.+)-.+" + target_label = "workload" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_name", + "__meta_kubernetes_pod_label_k8s_app", + "__meta_kubernetes_pod_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set the service label + rule { + source_labels = ["__meta_kubernetes_service_name"] + target_label = "service" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kube_dns scrape job + prometheus.scrape "kube_dns" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-dns") + forward_to = [prometheus.relabel.kube_dns.receiver] + targets = discovery.relabel.kube_dns.output + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kube_dns metric relabelings (post-scrape) + prometheus.relabel "kube_dns" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process|promhttp)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + kube-state-metrics_metrics.alloy: | + /* + Module: job-kube-state-metrics + Description: Scrapes Kube-State-Metrics, this is a separate scrape job, if you are also using annotation based scraping, you will want to explicitly + disable kube-state-metrics from being scraped by this module and annotations by setting the following annotation on the kube-state-metrics + metrics.agent.grafana.com/scrape: "false" + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "kubernetes" { + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [] is all namespaces)" + optional = true + } + + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"app.kubernetes.io/name=kube-state-metrics\"])" + optional = true + } + + argument "port_name" { + comment = "The of the port to scrape metrics from (default: http)" + optional = true + } + + // kube state metrics service discovery for all of the pods + discovery.kubernetes "ksm" { + role = "service" + + selectors { + role = "service" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["app.kubernetes.io/name=kube-state-metrics"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, []) + } + } + + // kube-state-metrics relabelings (pre-scrape) + discovery.relabel "ksm" { + targets = discovery.kubernetes.ksm.targets + + // only keep targets with a matching port name + rule { + source_labels = ["__meta_kubernetes_service_port_name"] + regex = coalesce(argument.port_name.value, "http") + action = "keep" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + export "output" { + value = discovery.relabel.ksm.output + } + } + + declare "scrape" { + argument "targets" { + comment = "Must be a list() of targets" + } + + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + + argument "job_label" { + comment = "The job label to add for all kube-kube_state_metrics metrics (default: integrations/kubernetes/kube-state-metrics)" + optional = true + } + + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + // kube-state-metrics scrape job + prometheus.scrape "kube_state_metrics" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-state-metrics") + forward_to = [prometheus.relabel.kube_state_metrics.receiver] + targets = argument.targets.value + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kube_state_metrics metric relabelings (post-scrape) + prometheus.relabel "kube_state_metrics" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|kube_(daemonset.*|deployment_(metadata_generation|spec_replicas|status_(observed_generation|replicas_(available|updated)))|horizontalpodautoscaler_(spec_(max|min)_replicas|status_(current|desired)_replicas)|job.*|namespace_status_phase|node.*|persistentvolumeclaim_resource_requests_storage_bytes|pod_(container_(info|resource_(limits|requests)|status_(last_terminated_reason|restarts_total|waiting_reason))|info|owner|start_time|status_(phase|reason))|replicaset.*|resourcequota|statefulset.*))") + action = "keep" + } + } + } +--- +# Source: k8s-monitoring/templates/alloy-modules-configmaps.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-module-system +data: + node-exporter_metrics.alloy: | + /* + Module: job-node_exporter + Description: Scrapes node_exporter + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "kubernetes" { + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [] is all namespaces)" + optional = true + } + + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"app.kubernetes.io/name=prometheus-node-exporter\"])" + optional = true + } + + argument "port_name" { + comment = "The of the port to scrape metrics from (default: metrics)" + optional = true + } + + // node_exporter service discovery for all of the pods + discovery.kubernetes "node_exporter" { + role = "pod" + + selectors { + role = "pod" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["app.kubernetes.io/name=prometheus-node-exporter"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, []) + } + } + + // node_exporter relabelings (pre-scrape) + discovery.relabel "kubernetes" { + targets = discovery.kubernetes.node_exporter.targets + + // keep only the specified metrics port name, and pods that are Running and ready + rule { + source_labels = [ + "__meta_kubernetes_pod_container_port_name", + "__meta_kubernetes_pod_phase", + "__meta_kubernetes_pod_ready", + ] + separator = "@" + regex = coalesce(argument.port_name.value, "metrics") + "@Running@true" + action = "keep" + } + + // drop any init containers + rule { + source_labels = ["__meta_kubernetes_pod_container_init"] + regex = "true" + action = "drop" + } + + // set the namespace label + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the pod label + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + + // set the container label + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + + // set a workload label + rule { + source_labels = [ + "__meta_kubernetes_pod_controller_kind", + "__meta_kubernetes_pod_controller_name", + ] + separator = "/" + target_label = "workload" + } + // remove the hash from the ReplicaSet + rule { + source_labels = ["workload"] + regex = "(ReplicaSet/.+)-.+" + target_label = "workload" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_name", + "__meta_kubernetes_pod_label_k8s_app", + "__meta_kubernetes_pod_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set the component if specified as metadata labels "component:" or "app.kubernetes.io/component:" or "k8s-component:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_component", + "__meta_kubernetes_pod_label_k8s_component", + "__meta_kubernetes_pod_label_component", + ] + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "component" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + export "output" { + value = discovery.relabel.kubernetes.output + } + } + + declare "local" { + argument "port" { + comment = "The port to use (default: 9100)" + optional = true + } + + // arguments for local (static) + discovery.relabel "local" { + targets = [ + { + "__address__" = "localhost" + format("%s", coalesce(argument.port.value, "9100")), + "source" = "local", + }, + ] + } + + export "output" { + value = discovery.relabel.local.output + } + } + + declare "scrape" { + argument "targets" { + comment = "Must be a list() of targets" + } + + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + + argument "job_label" { + comment = "The job label to add for all node_exporter metric (default: integrations/node_exporter)" + optional = true + } + + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + + argument "clustering" { + // Docs: https://node_exporter.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + // node_exporter scrape job + prometheus.scrape "node_exporter" { + job_name = coalesce(argument.job_label.value, "integrations/node_exporter") + forward_to = [prometheus.relabel.node_exporter.receiver] + targets = argument.targets.value + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // node_exporter metric relabelings (post-scrape) + prometheus.relabel "node_exporter" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|scrape_(duration_seconds|series_added|samples_(post_metric_relabeling|scraped))|node_(arp_entries|boot_time_seconds|context_switches_total|cpu_seconds_total|disk_(io_time_seconds_total|io_time_weighted_seconds_total|read_(bytes_total|time_seconds_total)|reads_completed_total|write_time_seconds_total|writes_completed_total|written_bytes_total)|file(fd_(allocated|maximum)|system_(avail_bytes|device_error|files(_free)?|readonly|size_bytes))|intr_total|load(1|15|5)|md_disks(_required)?|memory_(Active_(anon_bytes|bytes|file_bytes)|Anon(HugePages_bytes|Pages_bytes)|Bounce_bytes|Buffers_bytes|Cached_bytes|CommitLimit_bytes|Committed_AS_bytes|DirectMap(1G|2M|4k)_bytes|Dirty_bytes|HugePages_(Free|Rsvd|Surp|Total)|Hugepagesize_bytes|Inactive_(anon_bytes|bytes|file_bytes)|Mapped_bytes|Mem(Available|Free|Total)_bytes|S(Reclaimable|Unreclaim)_bytes|Shmem(HugePages_bytes|PmdMapped_bytes|_bytes)|Slab_bytes|SwapTotal_bytes|Vmalloc(Chunk|Total|Used)_bytes|Writeback(Tmp|)_bytes)|netstat_(Icmp6_(InErrors|InMsgs|OutMsgs)|Icmp_(InErrors|InMsgs|OutMsgs)|IpExt_(InOctets|OutOctets)|TcpExt_(Listen(Drops|Overflows)|TCPSynRetrans)|Tcp_(InErrs|InSegs|OutRsts|OutSegs|RetransSegs)|Udp6_(InDatagrams|InErrors|NoPorts|OutDatagrams|RcvbufErrors|SndbufErrors)|Udp(Lite|)_(InDatagrams|InErrors|NoPorts|OutDatagrams|RcvbufErrors|SndbufErrors))|network_(carrier|info|mtu_bytes|receive_(bytes_total|compressed_total|drop_total|errs_total|fifo_total|multicast_total|packets_total)|speed_bytes|transmit_(bytes_total|compressed_total|drop_total|errs_total|fifo_total|multicast_total|packets_total|queue_length)|up)|nf_conntrack_(entries(_limit)?|limit)|os_info|sockstat_(FRAG6|FRAG|RAW6|RAW|TCP6|TCP_(alloc|inuse|mem(_bytes)?|orphan|tw)|UDP6|UDPLITE6|UDPLITE|UDP_(inuse|mem(_bytes)?)|sockets_used)|softnet_(dropped_total|processed_total|times_squeezed_total)|systemd_unit_state|textfile_scrape_error|time_zone_offset_seconds|timex_(estimated_error_seconds|maxerror_seconds|offset_seconds|sync_status)|uname_info|vmstat_(oom_kill|pgfault|pgmajfault|pgpgin|pgpgout|pswpin|pswpout)|process_(max_fds|open_fds)))") + action = "keep" + } + + // Drop metrics for certain file systems + rule { + source_labels = ["__name__", "fstype"] + separator = "@" + regex = "node_filesystem.*@(tempfs)" + action = "drop" + } + } + } +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/rolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-kepler-clusterrole +rules: + - apiGroups: [""] + resources: + - nodes/metrics # access /metrics/resource + - nodes/proxy + - nodes/stats + - pods + verbs: + - get + - watch + - list +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + name: k8smon-kube-state-metrics +rules: + +- apiGroups: ["certificates.k8s.io"] + resources: + - certificatesigningrequests + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - configmaps + verbs: ["list", "watch"] + +- apiGroups: ["batch"] + resources: + - cronjobs + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "apps"] + resources: + - daemonsets + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "apps"] + resources: + - deployments + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - endpoints + verbs: ["list", "watch"] + +- apiGroups: ["autoscaling"] + resources: + - horizontalpodautoscalers + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "networking.k8s.io"] + resources: + - ingresses + verbs: ["list", "watch"] + +- apiGroups: ["batch"] + resources: + - jobs + verbs: ["list", "watch"] + +- apiGroups: ["coordination.k8s.io"] + resources: + - leases + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - limitranges + verbs: ["list", "watch"] + +- apiGroups: ["admissionregistration.k8s.io"] + resources: + - mutatingwebhookconfigurations + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - namespaces + verbs: ["list", "watch"] + +- apiGroups: ["networking.k8s.io"] + resources: + - networkpolicies + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - nodes + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - persistentvolumeclaims + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - persistentvolumes + verbs: ["list", "watch"] + +- apiGroups: ["policy"] + resources: + - poddisruptionbudgets + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - pods + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "apps"] + resources: + - replicasets + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - replicationcontrollers + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - resourcequotas + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - secrets + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - services + verbs: ["list", "watch"] + +- apiGroups: ["apps"] + resources: + - statefulsets + verbs: ["list", "watch"] + +- apiGroups: ["storage.k8s.io"] + resources: + - storageclasses + verbs: ["list", "watch"] + +- apiGroups: ["admissionregistration.k8s.io"] + resources: + - validatingwebhookconfigurations + verbs: ["list", "watch"] + +- apiGroups: ["storage.k8s.io"] + resources: + - volumeattachments + verbs: ["list", "watch"] +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/clusterrole.yaml +# Cluster role giving opencost to get, list, watch required resources +# No write permissions are required +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-opencost + labels: + helm.sh/chart: opencost-1.42.3 + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.113.0" + app.kubernetes.io/part-of: opencost + app.kubernetes.io/managed-by: Helm +rules: + - apiGroups: [""] + resources: + - configmaps + - deployments + - nodes + - pods + - services + - resourcequotas + - replicationcontrollers + - limitranges + - persistentvolumeclaims + - persistentvolumes + - namespaces + - endpoints + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - statefulsets + - deployments + - daemonsets + - replicasets + verbs: + - list + - watch + - apiGroups: + - batch + resources: + - cronjobs + - jobs + verbs: + - get + - list + - watch + - apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - list + - watch +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-logs +subjects: + - kind: ServiceAccount + name: k8smon-alloy-logs + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-metrics +subjects: + - kind: ServiceAccount + name: k8smon-alloy-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-singleton +subjects: + - kind: ServiceAccount + name: k8smon-alloy-singleton + namespace: default +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/rolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-kepler-clusterrole-binding +roleRef: + kind: ClusterRole + name: k8smon-kepler-clusterrole + apiGroup: "rbac.authorization.k8s.io" +subjects: + - kind: ServiceAccount + name: k8smon-kepler + namespace: default +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + name: k8smon-kube-state-metrics +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-kube-state-metrics +subjects: +- kind: ServiceAccount + name: k8smon-kube-state-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-opencost + labels: + helm.sh/chart: opencost-1.42.3 + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.113.0" + app.kubernetes.io/part-of: opencost + app.kubernetes.io/managed-by: Helm +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-opencost +subjects: + - kind: ServiceAccount + name: k8smon-opencost + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics-cluster + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + clusterIP: 'None' + publishNotReadyAddresses: true + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + ports: + # Do not include the -metrics suffix in the port name, otherwise metrics + # can be double-collected with the non-headless Service if it's also + # enabled. + # + # This service should only be used for clustering, and not metric + # collection. + - name: http + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-kepler + namespace: default + labels: + helm.sh/chart: kepler-0.5.11 + app.kubernetes.io/name: kepler + app.kubernetes.io/component: exporter + app.kubernetes.io/version: "release-0.7.12" + app.kubernetes.io/managed-by: Helm +spec: + type: ClusterIP + ports: + - name: http + port: 9102 + targetPort: http + protocol: TCP + selector: + app.kubernetes.io/name: kepler + app.kubernetes.io/component: exporter +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-kube-state-metrics + namespace: default + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + annotations: +spec: + type: "ClusterIP" + ports: + - name: "http" + protocol: TCP + port: 8080 + targetPort: 8080 + + selector: + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-node-exporter + namespace: default + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon + annotations: + prometheus.io/scrape: "true" +spec: + type: ClusterIP + ports: + - port: 9100 + targetPort: 9100 + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-opencost + namespace: default + labels: + helm.sh/chart: opencost-1.42.3 + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.113.0" + app.kubernetes.io/part-of: opencost + app.kubernetes.io/managed-by: Helm +spec: + selector: + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + type: "ClusterIP" + ports: + - name: http + port: 9003 + targetPort: 9003 +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon + annotations: + prometheus.io/scrape: "true" +spec: + type: ClusterIP + ports: + - port: 9182 + targetPort: metrics + protocol: TCP + appProtocol: http + name: metrics + selector: + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + labels: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-logs + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: varlog + mountPath: /var/log + readOnly: true + - name: dockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-logs + - name: varlog + hostPath: + path: /var/log + - name: dockercontainers + hostPath: + path: /var/lib/docker/containers +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kepler/templates/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-kepler + namespace: default + labels: + helm.sh/chart: kepler-0.5.11 + app.kubernetes.io/name: kepler + app.kubernetes.io/component: exporter + app.kubernetes.io/version: "release-0.7.12" + app.kubernetes.io/managed-by: Helm +spec: + selector: + matchLabels: + app.kubernetes.io/name: kepler + app.kubernetes.io/component: exporter + template: + metadata: + annotations: + k8s.grafana.com/logs.job: integrations/kepler + labels: + app.kubernetes.io/name: kepler + app.kubernetes.io/component: exporter + spec: + hostNetwork: true + serviceAccountName: k8smon-kepler + containers: + - name: kepler-exporter + image: "quay.io/sustainable_computing_io/kepler:release-0.7.12" + imagePullPolicy: Always + securityContext: + privileged: true + args: + - -v=$(KEPLER_LOG_LEVEL) + env: + - name: NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: METRIC_PATH + value: "/metrics" + - name: BIND_ADDRESS + value: "0.0.0.0:9102" + - name: "CGROUP_METRICS" + value: "*" + - name: "CPU_ARCH_OVERRIDE" + value: "" + - name: "ENABLE_EBPF_CGROUPID" + value: "true" + - name: "ENABLE_GPU" + value: "true" + - name: "ENABLE_PROCESS_METRICS" + value: "false" + - name: "ENABLE_QAT" + value: "false" + - name: "EXPOSE_CGROUP_METRICS" + value: "false" + - name: "EXPOSE_ESTIMATED_IDLE_POWER_METRICS" + value: "true" + - name: "EXPOSE_HW_COUNTER_METRICS" + value: "true" + - name: "EXPOSE_IRQ_COUNTER_METRICS" + value: "true" + - name: "KEPLER_LOG_LEVEL" + value: "1" + ports: + - containerPort: 9102 + hostPort: 9102 + name: http + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: 9102 + scheme: HTTP + initialDelaySeconds: 10 + periodSeconds: 60 + successThreshold: 1 + timeoutSeconds: 10 + volumeMounts: + - name: lib-modules + mountPath: /lib/modules + - name: tracing + mountPath: /sys + - name: proc + mountPath: /proc + volumes: + - name: lib-modules + hostPath: + path: /lib/modules + type: DirectoryOrCreate + - name: tracing + hostPath: + path: /sys + type: Directory + - name: proc + hostPath: + path: /proc + type: Directory + nodeSelector: + kubernetes.io/os: linux + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: eks.amazonaws.com/compute-type + operator: NotIn + values: + - fargate + tolerations: + - effect: NoSchedule + key: node-role.kubernetes.io/control-plane +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-node-exporter + namespace: default + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon +spec: + selector: + matchLabels: + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + revisionHistoryLimit: 10 + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + cluster-autoscaler.kubernetes.io/safe-to-evict: "true" + k8s.grafana.com/logs.job: integrations/node_exporter + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon + spec: + automountServiceAccountToken: false + securityContext: + fsGroup: 65534 + runAsGroup: 65534 + runAsNonRoot: true + runAsUser: 65534 + serviceAccountName: k8smon-node-exporter + containers: + - name: node-exporter + image: quay.io/prometheus/node-exporter:v1.8.2 + imagePullPolicy: IfNotPresent + args: + - --path.procfs=/host/proc + - --path.sysfs=/host/sys + - --path.rootfs=/host/root + - --path.udev.data=/host/root/run/udev/data + - --web.listen-address=[$(HOST_IP)]:9100 + securityContext: + readOnlyRootFilesystem: true + env: + - name: HOST_IP + value: 0.0.0.0 + ports: + - name: metrics + containerPort: 9100 + protocol: TCP + livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: / + port: 9100 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: / + port: 9100 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + volumeMounts: + - name: proc + mountPath: /host/proc + readOnly: true + - name: sys + mountPath: /host/sys + readOnly: true + - name: root + mountPath: /host/root + mountPropagation: HostToContainer + readOnly: true + hostNetwork: true + hostPID: true + hostIPC: false + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: eks.amazonaws.com/compute-type + operator: NotIn + values: + - fargate + nodeSelector: + kubernetes.io/os: linux + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: proc + hostPath: + path: /proc + - name: sys + hostPath: + path: /sys + - name: root + hostPath: + path: / +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon +spec: + selector: + matchLabels: + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + cluster-autoscaler.kubernetes.io/safe-to-evict: "true" + k8s.grafana.com/logs.job: integrations/windows_exporter + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon + spec: + automountServiceAccountToken: false + securityContext: + windowsOptions: + hostProcess: true + runAsUserName: NT AUTHORITY\system + initContainers: + - name: configure-firewall + image: ghcr.io/prometheus-community/windows-exporter:0.29.2 + command: [ "powershell" ] + args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] + serviceAccountName: k8smon-windows-exporter + containers: + - name: windows-exporter + image: ghcr.io/prometheus-community/windows-exporter:0.29.2 + imagePullPolicy: IfNotPresent + args: + - --config.file=%CONTAINER_SANDBOX_MOUNT_POINT%/config.yml + - --collector.textfile.directories=%CONTAINER_SANDBOX_MOUNT_POINT% + - --web.listen-address=:9182 + env: + ports: + - name: metrics + containerPort: 9182 + protocol: TCP + livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /health + port: 9182 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /health + port: 9182 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + volumeMounts: + - name: config + mountPath: /config.yml + subPath: config.yml + hostNetwork: true + hostPID: true + nodeSelector: + kubernetes.io/os: windows + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: config + configMap: + name: k8smon-windows-exporter +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-singleton + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-singleton +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: k8smon-kube-state-metrics + namespace: default + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon +spec: + selector: + matchLabels: + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + replicas: 1 + strategy: + type: Recreate + revisionHistoryLimit: 10 + template: + metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + spec: + automountServiceAccountToken: true + hostNetwork: false + serviceAccountName: k8smon-kube-state-metrics + securityContext: + fsGroup: 65534 + runAsGroup: 65534 + runAsNonRoot: true + runAsUser: 65534 + seccompProfile: + type: RuntimeDefault + containers: + - name: kube-state-metrics + args: + - --port=8080 + - --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments + - --metric-labels-allowlist=nodes=[agentpool,alpha.eksctl.io/cluster-name,alpha.eksctl.io/nodegroup-name,beta.kubernetes.io/instance-type,cloud.google.com/gke-nodepool,cluster_name,ec2_amazonaws_com_Name,ec2_amazonaws_com_aws_autoscaling_groupName,ec2_amazonaws_com_aws_autoscaling_group_name,ec2_amazonaws_com_name,eks_amazonaws_com_nodegroup,k8s_io_cloud_provider_aws,karpenter.sh/nodepool,kubernetes.azure.com/cluster,kubernetes.io/arch,kubernetes.io/hostname,kubernetes.io/os,node.kubernetes.io/instance-type,topology.kubernetes.io/region,topology.kubernetes.io/zone] + imagePullPolicy: IfNotPresent + image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.14.0 + ports: + - containerPort: 8080 + name: "http" + livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /livez + port: 8080 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /readyz + port: 8081 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: + {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + nodeSelector: + kubernetes.io/os: linux +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/opencost/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: k8smon-opencost + namespace: default + labels: + helm.sh/chart: opencost-1.42.3 + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.113.0" + app.kubernetes.io/part-of: opencost + app.kubernetes.io/managed-by: Helm +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: opencost + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-opencost + tolerations: + - effect: NoSchedule + key: kubernetes.io/arch + operator: Equal + value: arm64 + nodeSelector: + kubernetes.io/os: linux + containers: + - name: k8smon-opencost + image: ghcr.io/opencost/opencost:1.113.0@sha256:b313d6d320058bbd3841a948fb636182f49b46df2368d91e2ae046ed03c0f83c + imagePullPolicy: IfNotPresent + args: + ports: + - containerPort: 9003 + name: http + resources: + limits: + cpu: 999m + memory: 1Gi + requests: + cpu: 10m + memory: 55Mi + startupProbe: + httpGet: + path: /healthz + port: 9003 + initialDelaySeconds: 10 + periodSeconds: 5 + failureThreshold: 30 + livenessProbe: + httpGet: + path: /healthz + port: 9003 + initialDelaySeconds: 10 + periodSeconds: 20 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /healthz + port: 9003 + initialDelaySeconds: 10 + periodSeconds: 10 + failureThreshold: 3 + env: + - name: LOG_LEVEL + value: info + - name: CUSTOM_COST_ENABLED + value: "false" + - name: KUBECOST_NAMESPACE + value: default + - name: API_PORT + value: "9003" + - name: PROMETHEUS_SERVER_ENDPOINT + value: "https://prometheus-server.prometheus.svc:9090/api/v1/query" + - name: CLUSTER_ID + value: "cluster-monitoring-feature-test" + - name: DB_BASIC_AUTH_USERNAME + valueFrom: + secretKeyRef: + name: localprometheus-k8smon-k8s-monitoring + key: username + - name: DB_BASIC_AUTH_PW + valueFrom: + secretKeyRef: + name: localprometheus-k8smon-k8s-monitoring + key: password + - name: DATA_RETENTION_DAILY_RESOLUTION_DAYS + value: "15" + - name: CLOUD_COST_ENABLED + value: "false" + - name: CLOUD_COST_MONTH_TO_DATE_INTERVAL + value: "6" + - name: CLOUD_COST_REFRESH_RATE_HOURS + value: "6" + - name: CLOUD_COST_QUERY_WINDOW_DAYS + value: "7" + - name: CLOUD_COST_RUN_WINDOW_DAYS + value: "3" + - name: EMIT_KSM_V1_METRICS + value: "false" + - name: EMIT_KSM_V1_METRICS_ONLY + value: "true" + # Add any additional provided variables + - name: CLOUD_PROVIDER_API_KEY + value: "AIzaSyD29bGxmHAVEOBYtgd8sYM2gM2ekfxQX4U" + - name: CURRENT_CLUSTER_ID_FILTER_ENABLED + value: "true" + - name: PROM_CLUSTER_ID_LABEL + value: "cluster" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + podManagementPolicy: Parallel + minReadySeconds: 10 + serviceName: k8smon-alloy-metrics + selector: + matchLabels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-metrics + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --cluster.enabled=true + - --cluster.join-addresses=k8smon-alloy-metrics-cluster + - --cluster.name="alloy-metrics" + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/tests/integration/control-plane-monitoring/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/control-plane-monitoring/.rendered/output.yaml new file mode 100644 index 000000000..5f89f0223 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/control-plane-monitoring/.rendered/output.yaml @@ -0,0 +1,3687 @@ +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-logs + namespace: default + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-metrics + namespace: default + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-singleton + namespace: default + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +automountServiceAccountToken: true +metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + name: k8smon-kube-state-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-node-exporter + namespace: default + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon +automountServiceAccountToken: false +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "localloki-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + tenantId: "MQ==" + username: "bG9raQ==" + password: "bG9raXBhc3N3b3Jk" +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon +data: + config.yml: | + collectors: + enabled: cpu,cs,container,logical_disk,memory,net,os + collector: + service: + services-where: "Name='containerd' or Name='kubelet'" +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-metrics + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "control-plane-monitoring-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "control-plane-monitoring-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + + // Feature: Cluster Metrics + declare "cluster_metrics" { + argument "metrics_destinations" { + comment = "Must be a list of metric destinations where collected metrics should be forwarded to" + } + + remote.kubernetes.configmap "kubernetes" { + name = "k8smon-alloy-module-kubernetes" + namespace = "default" + } + + import.string "kubernetes" { + content = remote.kubernetes.configmap.kubernetes.data["core_metrics.alloy"] + } + + kubernetes.kubelet "scrape" { + clustering = true + keep_metrics = "up|container_cpu_usage_seconds_total|kubelet_certificate_manager_client_expiration_renew_errors|kubelet_certificate_manager_client_ttl_seconds|kubelet_certificate_manager_server_ttl_seconds|kubelet_cgroup_manager_duration_seconds_bucket|kubelet_cgroup_manager_duration_seconds_count|kubelet_node_config_error|kubelet_node_name|kubelet_pleg_relist_duration_seconds_bucket|kubelet_pleg_relist_duration_seconds_count|kubelet_pleg_relist_interval_seconds_bucket|kubelet_pod_start_duration_seconds_bucket|kubelet_pod_start_duration_seconds_count|kubelet_pod_worker_duration_seconds_bucket|kubelet_pod_worker_duration_seconds_count|kubelet_running_container_count|kubelet_running_containers|kubelet_running_pod_count|kubelet_running_pods|kubelet_runtime_operations_errors_total|kubelet_runtime_operations_total|kubelet_server_expiration_renew_errors|kubelet_volume_stats_available_bytes|kubelet_volume_stats_capacity_bytes|kubelet_volume_stats_inodes|kubelet_volume_stats_inodes_used|kubernetes_build_info|namespace_workload_pod|rest_client_requests_total|storage_operation_duration_seconds_count|storage_operation_errors_total|volume_manager_total_volumes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + kubernetes.resources "scrape" { + clustering = true + job_label = "integrations/kubernetes/resources" + keep_metrics = "up|node_cpu_usage_seconds_total|node_memory_working_set_bytes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + kubernetes.cadvisor "scrape" { + clustering = true + keep_metrics = "up|container_cpu_cfs_periods_total|container_cpu_cfs_throttled_periods_total|container_cpu_usage_seconds_total|container_fs_reads_bytes_total|container_fs_reads_total|container_fs_writes_bytes_total|container_fs_writes_total|container_memory_cache|container_memory_rss|container_memory_swap|container_memory_working_set_bytes|container_network_receive_bytes_total|container_network_receive_packets_dropped_total|container_network_receive_packets_total|container_network_transmit_bytes_total|container_network_transmit_packets_dropped_total|container_network_transmit_packets_total|machine_memory_bytes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = [prometheus.relabel.cadvisor.receiver] + } + + prometheus.relabel "cadvisor" { + max_cache_size = 100000 + // Drop empty container labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","container"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*)@" + action = "drop" + } + // Drop empty image labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","image"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*|container_network_.*)@" + action = "drop" + } + // Normalizing unimportant labels (not deleting to continue satisfying <label>!="" checks) + rule { + source_labels = ["__name__", "boot_id"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "boot_id" + replacement = "NA" + } + rule { + source_labels = ["__name__", "system_uuid"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "system_uuid" + replacement = "NA" + } + // Filter out non-physical devices/interfaces + rule { + source_labels = ["__name__", "device"] + separator = "@" + regex = "container_fs_.*@(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dasd.+)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_fs_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_fs_.*" + target_label = "__keepme" + replacement = "" + } + rule { + source_labels = ["__name__", "interface"] + separator = "@" + regex = "container_network_.*@(en[ospx][0-9].*|wlan[0-9].*|eth[0-9].*)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_network_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_network_.*" + target_label = "__keepme" + replacement = "" + } + forward_to = argument.metrics_destinations.value + } + + kubernetes.apiserver "scrape" { + clustering = true + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "kube_controller_manager" { + role = "pod" + namespaces { + names = ["kube-system"] + } + selectors { + role = "pod" + label = "component=kube-controller-manager" + } + } + + discovery.relabel "kube_controller_manager" { + targets = discovery.kubernetes.kube_controller_manager.targets + rule { + source_labels = ["__address__"] + replacement = "$1:10257" + target_label = "__address__" + } + } + + prometheus.scrape "kube_controller_manager" { + targets = discovery.relabel.kube_controller_manager.output + job_name = "kube-controller-manager" + scheme = "https" + scrape_interval = "60s" + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + tls_config { + insecure_skip_verify = true + } + clustering { + enabled = true + } + forward_to = argument.metrics_destinations.value + } + + kubernetes.kube_dns "scrape" { + clustering = true + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "kube_proxy" { + role = "pod" + namespaces { + names = ["kube-system"] + } + selectors { + role = "pod" + label = "k8s-app=kube-proxy" + } + } + + discovery.relabel "kube_proxy" { + targets = discovery.kubernetes.kube_proxy.targets + rule { + source_labels = ["__address__"] + replacement = "$1:10249" + target_label = "__address__" + } + } + + prometheus.scrape "kube_proxy" { + targets = discovery.relabel.kube_proxy.output + job_name = "integrations/kubernetes/kube-proxy" + scheme = "http" + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "kube_scheduler" { + role = "pod" + namespaces { + names = ["kube-system"] + } + selectors { + role = "pod" + label = "component=kube-scheduler" + } + } + + discovery.relabel "kube_scheduler" { + targets = discovery.kubernetes.kube_scheduler.targets + rule { + source_labels = ["__address__"] + replacement = "$1:10259" + target_label = "__address__" + } + } + + prometheus.scrape "kube_scheduler" { + targets = discovery.relabel.kube_scheduler.output + job_name = "kube-scheduler" + scheme = "https" + scrape_interval = "60s" + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + tls_config { + insecure_skip_verify = true + } + clustering { + enabled = true + } + forward_to = argument.metrics_destinations.value + } + + remote.kubernetes.configmap "kube_state_metrics" { + name = "k8smon-alloy-module-kubernetes" + namespace = "default" + } + + import.string "kube_state_metrics" { + content = remote.kubernetes.configmap.kube_state_metrics.data["kube-state-metrics_metrics.alloy"] + } + + kube_state_metrics.kubernetes "targets" { + label_selectors = [ + "app.kubernetes.io/name=kube-state-metrics", + "release=k8smon", + ] + } + + kube_state_metrics.scrape "metrics" { + targets = kube_state_metrics.kubernetes.targets.output + clustering = true + keep_metrics = "up|kube_daemonset.*|kube_deployment_metadata_generation|kube_deployment_spec_replicas|kube_deployment_status_observed_generation|kube_deployment_status_replicas_available|kube_deployment_status_replicas_updated|kube_horizontalpodautoscaler_spec_max_replicas|kube_horizontalpodautoscaler_spec_min_replicas|kube_horizontalpodautoscaler_status_current_replicas|kube_horizontalpodautoscaler_status_desired_replicas|kube_job.*|kube_namespace_status_phase|kube_node.*|kube_persistentvolumeclaim_resource_requests_storage_bytes|kube_pod_container_info|kube_pod_container_resource_limits|kube_pod_container_resource_requests|kube_pod_container_status_last_terminated_reason|kube_pod_container_status_restarts_total|kube_pod_container_status_waiting_reason|kube_pod_info|kube_pod_owner|kube_pod_start_time|kube_pod_status_phase|kube_pod_status_reason|kube_replicaset.*|kube_resourcequota|kube_statefulset.*" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + remote.kubernetes.configmap "node_exporter" { + name = "k8smon-alloy-module-system" + namespace = "default" + } + + import.string "node_exporter" { + content = remote.kubernetes.configmap.node_exporter.data["node-exporter_metrics.alloy"] + } + + node_exporter.kubernetes "targets" { + label_selectors = [ + "app.kubernetes.io/name=node-exporter", + "release=k8smon", + ] + } + + discovery.relabel "node_exporter" { + targets = node_exporter.kubernetes.targets.output + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + node_exporter.scrape "metrics" { + targets = discovery.relabel.node_exporter.output + job_label = "integrations/node_exporter" + clustering = true + keep_metrics = "up|node_cpu.*|node_exporter_build_info|node_filesystem.*|node_memory.*|node_network_receive_bytes_total|node_network_receive_drop_total|node_network_transmit_bytes_total|node_network_transmit_drop_total|process_cpu_seconds_total|process_resident_memory_bytes" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + + discovery.kubernetes "windows_exporter_pods" { + role = "pod" + namespaces { + names = ["default"] + } + selectors { + role = "pod" + label = "app.kubernetes.io/name=windows-exporter,release=k8smon" + } + } + + discovery.relabel "windows_exporter" { + targets = discovery.kubernetes.windows_exporter_pods.targets + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + action = "replace" + target_label = "instance" + } + } + + prometheus.scrape "windows_exporter" { + job_name = "integrations/windows-exporter" + targets = discovery.relabel.windows_exporter.output + scrape_interval = "60s" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.windows_exporter.receiver] + } + + prometheus.relabel "windows_exporter" { + max_cache_size = 100000 + rule { + source_labels = ["__name__"] + regex = "up|windows_.*|node_cpu_seconds_total|node_filesystem_size_bytes|node_filesystem_avail_bytes|container_cpu_usage_seconds_total" + action = "keep" + } + forward_to = argument.metrics_destinations.value + } + } + cluster_metrics "feature" { + metrics_destinations = [ + prometheus.remote_write.localprometheus.receiver, + ] + } +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-singleton + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "control-plane-monitoring-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "control-plane-monitoring-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + // Destination: localLoki (loki) + otelcol.exporter.loki "localloki" { + forward_to = [loki.write.localloki.receiver] + } + + loki.write "localloki" { + endpoint { + url = "http://loki.loki.svc:3100/loki/api/v1/push" + tenant_id = nonsensitive(remote.kubernetes.secret.localloki.data["tenantId"]) + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localloki.data["username"]) + password = remote.kubernetes.secret.localloki.data["password"] + } + tls_config { + insecure_skip_verify = false + } + } + external_labels = { + cluster = "control-plane-monitoring-test", + "k8s_cluster_name" = "control-plane-monitoring-test", + } + } + + remote.kubernetes.secret "localloki" { + name = "localloki-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Cluster Events + declare "cluster_events" { + argument "logs_destinations" { + comment = "Must be a list of log destinations where collected logs should be forwarded to" + } + + loki.source.kubernetes_events "cluster_events" { + job_name = "integrations/kubernetes/eventhandler" + log_format = "logfmt" + forward_to = argument.logs_destinations.value + } + } + cluster_events "feature" { + logs_destinations = [ + loki.write.localloki.receiver, + ] + } + + // Self Reporting + prometheus.exporter.unix "kubernetes_monitoring_telemetry" { + set_collectors = ["textfile"] + textfile { + directory = "/etc/alloy" + } + } + + discovery.relabel "kubernetes_monitoring_telemetry" { + targets = prometheus.exporter.unix.kubernetes_monitoring_telemetry.targets + rule { + target_label = "instance" + action = "replace" + replacement = "k8smon" + } + rule { + target_label = "job" + action = "replace" + replacement = "integrations/kubernetes/kubernetes_monitoring_telemetry" + } + } + + prometheus.scrape "kubernetes_monitoring_telemetry" { + job_name = "integrations/kubernetes/kubernetes_monitoring_telemetry" + targets = discovery.relabel.kubernetes_monitoring_telemetry.output + scrape_interval = "1m" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kubernetes_monitoring_telemetry.receiver] + } + + prometheus.relabel "kubernetes_monitoring_telemetry" { + rule { + source_labels = ["__name__"] + regex = "grafana_kubernetes_monitoring_.*" + action = "keep" + } + forward_to = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + + + + self-reporting-metric.prom: | + # HELP grafana_kubernetes_monitoring_build_info A metric to report the version of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_build_info gauge + grafana_kubernetes_monitoring_build_info{version="2.0.0-rc.5", namespace="default"} 1 + # HELP grafana_kubernetes_monitoring_feature_info A metric to report the enabled features of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_feature_info gauge + grafana_kubernetes_monitoring_feature_info{deployments="kube-state-metrics,node-exporter,windows-exporter", feature="clusterMetrics", sources="controlPlane,kubelet,kubeletResource,cadvisor,kube-state-metrics,node-exporter,windows-exporter", version="1.0.0"} 1 + grafana_kubernetes_monitoring_feature_info{feature="clusterEvents", version="1.0.0"} 1 + grafana_kubernetes_monitoring_feature_info{feature="podLogs", method="volumes", version="1.0.0"} 1 +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-logs + namespace: default +data: + config.alloy: |- + // Destination: localLoki (loki) + otelcol.exporter.loki "localloki" { + forward_to = [loki.write.localloki.receiver] + } + + loki.write "localloki" { + endpoint { + url = "http://loki.loki.svc:3100/loki/api/v1/push" + tenant_id = nonsensitive(remote.kubernetes.secret.localloki.data["tenantId"]) + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localloki.data["username"]) + password = remote.kubernetes.secret.localloki.data["password"] + } + tls_config { + insecure_skip_verify = false + } + } + external_labels = { + cluster = "control-plane-monitoring-test", + "k8s_cluster_name" = "control-plane-monitoring-test", + } + } + + remote.kubernetes.secret "localloki" { + name = "localloki-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Pod Logs + declare "pod_logs" { + argument "logs_destinations" { + comment = "Must be a list of log destinations where collected logs should be forwarded to" + } + + discovery.relabel "filtered_pods" { + targets = discovery.kubernetes.pods.targets + rule { + source_labels = ["__meta_kubernetes_namespace"] + action = "replace" + target_label = "namespace" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + action = "replace" + target_label = "pod" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + action = "replace" + target_label = "container" + } + rule { + source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"] + separator = "/" + action = "replace" + replacement = "$1" + target_label = "job" + } + rule { + source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"] + regex = "(.+)" + target_label = "app_kubernetes_io_name" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_k8s_grafana_com_logs_job"] + regex = "(.+)" + target_label = "job" + } + + // set the container runtime as a label + rule { + action = "replace" + source_labels = ["__meta_kubernetes_pod_container_id"] + regex = "^(\\S+):\\/\\/.+$" + replacement = "$1" + target_label = "tmp_container_runtime" + } + } + + discovery.kubernetes "pods" { + role = "pod" + selectors { + role = "pod" + field = "spec.nodeName=" + env("HOSTNAME") + } + } + + discovery.relabel "filtered_pods_with_paths" { + targets = discovery.relabel.filtered_pods.output + + rule { + source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"] + separator = "/" + action = "replace" + replacement = "/var/log/pods/*$1/*.log" + target_label = "__path__" + } + } + + local.file_match "pod_logs" { + path_targets = discovery.relabel.filtered_pods_with_paths.output + } + + loki.source.file "pod_logs" { + targets = local.file_match.pod_logs.targets + forward_to = [loki.process.pod_logs.receiver] + } + + loki.process "pod_logs" { + stage.match { + selector = "{tmp_container_runtime=~\"containerd|cri-o\"}" + // the cri processing stage extracts the following k/v pairs: log, stream, time, flags + stage.cri {} + + // Set the extract flags and stream values as labels + stage.labels { + values = { + flags = "", + stream = "", + } + } + } + + stage.match { + selector = "{tmp_container_runtime=\"docker\"}" + // the docker processing stage extracts the following k/v pairs: log, stream, time + stage.docker {} + + // Set the extract stream value as a label + stage.labels { + values = { + stream = "", + } + } + } + + // Drop the filename label, since it's not really useful in the context of Kubernetes, where we already have cluster, + // namespace, pod, and container labels. Drop any structured metadata. Also drop the temporary + // container runtime label as it is no longer needed. + stage.label_drop { + values = [ + "filename", + "tmp_container_runtime", + ] + } + forward_to = argument.logs_destinations.value + } + } + pod_logs "feature" { + logs_destinations = [ + loki.write.localloki.receiver, + ] + } +--- +# Source: k8s-monitoring/templates/alloy-modules-configmaps.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-module-kubernetes +data: + core_metrics.alloy: | + /* + Module: job-cadvisor + Description: Scrapes cadvisor + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "cadvisor" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all cadvisor metric (default: integrations/kubernetes/cadvisor)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.cadvisor.output + } + + // cadvisor service discovery for all of the nodes + discovery.kubernetes "cadvisor" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // cadvisor relabelings (pre-scrape) + discovery.relabel "cadvisor" { + targets = discovery.kubernetes.cadvisor.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes cadvisor metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/cadvisor" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // cadvisor scrape job + prometheus.scrape "cadvisor" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/cadvisor") + forward_to = [prometheus.relabel.cadvisor.receiver] + targets = discovery.relabel.cadvisor.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // cadvisor metric relabelings (post-scrape) + prometheus.relabel "cadvisor" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|container_(cpu_(cfs_(periods|throttled_periods)_total|usage_seconds_total)|fs_(reads|writes)(_bytes)?_total|memory_(cache|rss|swap|working_set_bytes)|network_(receive|transmit)_(bytes|packets(_dropped)?_total))|machine_memory_bytes)") + action = "keep" + } + + // Drop empty container labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","container"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*)@" + action = "drop" + } + + // Drop empty image labels, addressing https://github.com/google/cadvisor/issues/2688 + rule { + source_labels = ["__name__","image"] + separator = "@" + regex = "(container_cpu_.*|container_fs_.*|container_memory_.*|container_network_.*)@" + action = "drop" + } + + // Normalizing unimportant labels (not deleting to continue satisfying <label>!="" checks) + rule { + source_labels = ["__name__", "boot_id"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "boot_id" + replacement = "NA" + } + rule { + source_labels = ["__name__", "system_uuid"] + separator = "@" + regex = "machine_memory_bytes@.*" + target_label = "system_uuid" + replacement = "NA" + } + + // Filter out non-physical devices/interfaces + rule { + source_labels = ["__name__", "device"] + separator = "@" + regex = "container_fs_.*@(/dev/)?(mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dasd.+)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_fs_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_fs_.*" + target_label = "__keepme" + replacement = "" + } + rule { + source_labels = ["__name__", "interface"] + separator = "@" + regex = "container_network_.*@(en[ospx][0-9].*|wlan[0-9].*|eth[0-9].*)" + target_label = "__keepme" + replacement = "1" + } + rule { + source_labels = ["__name__", "__keepme"] + separator = "@" + regex = "container_network_.*@" + action = "drop" + } + rule { + source_labels = ["__name__"] + regex = "container_network_.*" + target_label = "__keepme" + replacement = "" + } + } + } + + declare "resources" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all resources metric (default: integrations/kubernetes/kube-resources)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.resources.output + } + + // resources service discovery for all of the nodes + discovery.kubernetes "resources" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // resources relabelings (pre-scrape) + discovery.relabel "resources" { + targets = discovery.kubernetes.resources.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes resources metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/resource" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // resources scrape job + prometheus.scrape "resources" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-resources") + forward_to = [prometheus.relabel.resources.receiver] + targets = discovery.relabel.resources.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // resources metric relabelings (post-scrape) + prometheus.relabel "resources" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "kubelet" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kubelet metric (default: integrations/kubernetes/kube-kubelet)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.kubelet.output + } + + // kubelet service discovery for all of the nodes + discovery.kubernetes "kubelet" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // kubelet relabelings (pre-scrape) + discovery.relabel "kubelet" { + targets = discovery.kubernetes.kubelet.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes kubelet metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kubelet scrape job + prometheus.scrape "kubelet" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kubelet") + forward_to = [prometheus.relabel.kubelet.receiver] + targets = discovery.relabel.kubelet.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kubelet metric relabelings (post-scrape) + prometheus.relabel "kubelet" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "apiserver" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "namespaces" { + comment = "The namespaces to look for targets in (default: default)" + optional = true + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "port_name" { + comment = "The value of the label for the selector (default: https)" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kube-apiserver metrics (default: integrations/kubernetes/kube-apiserver)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + // drop metrics and les from kube-prometheus + // https://github.com/prometheus-operator/kube-prometheus/blob/main/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "drop_les" { + comment = "Regular expression of metric les label values to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.apiserver.output + } + + // kube-apiserver service discovery + discovery.kubernetes "apiserver" { + role = "service" + + selectors { + role = "service" + field = join(coalesce(argument.field_selectors.value, ["metadata.name=kubernetes"]), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, ["default"]) + } + } + + // apiserver relabelings (pre-scrape) + discovery.relabel "apiserver" { + targets = discovery.kubernetes.apiserver.targets + + // only keep targets with a matching port name + rule { + source_labels = ["__meta_kubernetes_service_port_name"] + regex = coalesce(argument.port_name.value, "https") + action = "keep" + } + + // set the namespace + rule { + action = "replace" + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the service_name + rule { + action = "replace" + source_labels = ["__meta_kubernetes_service_name"] + target_label = "service" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_service_label_app_kubernetes_io_name", + "__meta_kubernetes_service_label_k8s_app", + "__meta_kubernetes_service_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kube-apiserver scrape job + prometheus.scrape "apiserver" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-apiserver") + forward_to = [prometheus.relabel.apiserver.receiver] + targets = discovery.relabel.apiserver.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // apiserver metric relabelings (post-scrape) + prometheus.relabel "apiserver" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(((go|process)_.+)|kubelet_(pod_(worker|start)_latency_microseconds|cgroup_manager_latency_microseconds|pleg_relist_(latency|interval)_microseconds|runtime_operations(_latency_microseconds|_errors)?|eviction_stats_age_microseconds|device_plugin_(registration_count|alloc_latency_microseconds)|network_plugin_operations_latency_microseconds)|scheduler_(e2e_scheduling_latency_microseconds|scheduling_algorithm_(predicate|priority|preemption)_evaluation|scheduling_algorithm_latency_microseconds|binding_latency_microseconds|scheduling_latency_seconds)|apiserver_(request_(count|latencies(_summary)?)|dropped_requests|storage_(data_key_generation|transformation_(failures_total|latencies_microseconds))|proxy_tunnel_sync_latency_secs|longrunning_gauge|registered_watchers)|kubelet_docker_(operations(_latency_microseconds|_errors|_timeout)?)|reflector_(items_per_(list|watch)|list_duration_seconds|lists_total|short_watches_total|watch_duration_seconds|watches_total)|etcd_(helper_(cache_(hit|miss)_count|cache_entry_count|object_counts)|request_(cache_(get|add)_latencies_summary|latencies_summary)|debugging.*|disk.*|server.*)|transformation_(latencies_microseconds|failures_total)|(admission_quota_controller|APIServiceOpenAPIAggregationControllerQueue1|APIServiceRegistrationController|autoregister|AvailableConditionController|crd_(autoregistration_controller|Establishing|finalizer|naming_condition_controller|openapi_controller)|DiscoveryController|non_structural_schema_condition_controller|kubeproxy_sync_proxy_rules|rest_client_request_latency|storage_operation_(errors_total|status_count))(_.*)|apiserver_admission_(controller_admission|step_admission)_latencies_seconds_.*)") + action = "drop" + } + + // drop metrics whose name and le label match the drop_les regex + rule { + source_labels = [ + "__name__", + "le", + ] + regex = coalesce(argument.drop_les.value, "apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "probes" { + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"metadata.name=kubernetes\"])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + argument "job_label" { + comment = "The job label to add for all probes metric (default: integrations/kubernetes/kube-probes)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.probes.output + } + + // probes service discovery for all of the nodes + discovery.kubernetes "probes" { + role = "node" + + selectors { + role = "node" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, []), ",") + } + } + + // probes relabelings (pre-scrape) + discovery.relabel "probes" { + targets = discovery.kubernetes.probes.targets + + // set the address to use the kubernetes service dns name + rule { + target_label = "__address__" + replacement = "kubernetes.default.svc.cluster.local:443" + } + + // set the metrics path to use the proxy path to the nodes probes metrics endpoint + rule { + source_labels = ["__meta_kubernetes_node_name"] + regex = "(.+)" + replacement = "/api/v1/nodes/${1}/proxy/metrics/probes" + target_label = "__metrics_path__" + } + + // set the node label + rule { + source_labels = ["__meta_kubernetes_node_name"] + target_label = "node" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_node_label_app_kubernetes_io_name", + "__meta_kubernetes_node_label_k8s_app", + "__meta_kubernetes_node_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // probes scrape job + prometheus.scrape "probes" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-probes") + forward_to = [prometheus.relabel.probes.receiver] + targets = discovery.relabel.probes.output + scheme = "https" + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + + tls_config { + ca_file = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + insecure_skip_verify = false + server_name = "kubernetes" + } + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // probes metric relabelings (post-scrape) + prometheus.relabel "probes" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + declare "kube_dns" { + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [\"kube-system\"])" + optional = true + } + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"k8s-app=kube-dns\"])" + optional = true + } + argument "port_name" { + comment = "The of the port to scrape metrics from (default: metrics)" + optional = true + } + argument "job_label" { + comment = "The job label to add for all kube_dns metric (default: integrations/kubernetes/kube-dns)" + optional = true + } + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + export "output" { + value = discovery.relabel.kube_dns.output + } + + // kube_dns service discovery for all of the nodes + discovery.kubernetes "kube_dns" { + role = "endpoints" + + selectors { + role = "endpoints" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["k8s-app=kube-dns"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, ["kube-system"]) + } + } + + // kube_dns relabelings (pre-scrape) + discovery.relabel "kube_dns" { + targets = discovery.kubernetes.kube_dns.targets + + // keep only the specified metrics port name, and pods that are Running and ready + rule { + source_labels = [ + "__meta_kubernetes_pod_container_port_name", + "__meta_kubernetes_pod_phase", + "__meta_kubernetes_pod_ready", + ] + separator = "@" + regex = coalesce(argument.port_name.value, "metrics") + "@Running@true" + action = "keep" + } + + // drop any init containers + rule { + source_labels = ["__meta_kubernetes_pod_container_init"] + regex = "true" + action = "drop" + } + + // set the namespace label + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the pod label + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + + // set the container label + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + + // set a workload label + rule { + source_labels = [ + "__meta_kubernetes_pod_controller_kind", + "__meta_kubernetes_pod_controller_name", + ] + separator = "/" + target_label = "workload" + } + // remove the hash from the ReplicaSet + rule { + source_labels = ["workload"] + regex = "(ReplicaSet/.+)-.+" + target_label = "workload" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_name", + "__meta_kubernetes_pod_label_k8s_app", + "__meta_kubernetes_pod_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set the service label + rule { + source_labels = ["__meta_kubernetes_service_name"] + target_label = "service" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + // kube_dns scrape job + prometheus.scrape "kube_dns" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-dns") + forward_to = [prometheus.relabel.kube_dns.receiver] + targets = discovery.relabel.kube_dns.output + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kube_dns metric relabelings (post-scrape) + prometheus.relabel "kube_dns" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process|promhttp)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(.+)") + action = "keep" + } + } + } + + kube-state-metrics_metrics.alloy: | + /* + Module: job-kube-state-metrics + Description: Scrapes Kube-State-Metrics, this is a separate scrape job, if you are also using annotation based scraping, you will want to explicitly + disable kube-state-metrics from being scraped by this module and annotations by setting the following annotation on the kube-state-metrics + metrics.agent.grafana.com/scrape: "false" + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "kubernetes" { + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [] is all namespaces)" + optional = true + } + + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"app.kubernetes.io/name=kube-state-metrics\"])" + optional = true + } + + argument "port_name" { + comment = "The of the port to scrape metrics from (default: http)" + optional = true + } + + // kube state metrics service discovery for all of the pods + discovery.kubernetes "ksm" { + role = "service" + + selectors { + role = "service" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["app.kubernetes.io/name=kube-state-metrics"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, []) + } + } + + // kube-state-metrics relabelings (pre-scrape) + discovery.relabel "ksm" { + targets = discovery.kubernetes.ksm.targets + + // only keep targets with a matching port name + rule { + source_labels = ["__meta_kubernetes_service_port_name"] + regex = coalesce(argument.port_name.value, "http") + action = "keep" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + export "output" { + value = discovery.relabel.ksm.output + } + } + + declare "scrape" { + argument "targets" { + comment = "Must be a list() of targets" + } + + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + + argument "job_label" { + comment = "The job label to add for all kube-kube_state_metrics metrics (default: integrations/kubernetes/kube-state-metrics)" + optional = true + } + + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + // kube-state-metrics scrape job + prometheus.scrape "kube_state_metrics" { + job_name = coalesce(argument.job_label.value, "integrations/kubernetes/kube-state-metrics") + forward_to = [prometheus.relabel.kube_state_metrics.receiver] + targets = argument.targets.value + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // kube_state_metrics metric relabelings (post-scrape) + prometheus.relabel "kube_state_metrics" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|kube_(daemonset.*|deployment_(metadata_generation|spec_replicas|status_(observed_generation|replicas_(available|updated)))|horizontalpodautoscaler_(spec_(max|min)_replicas|status_(current|desired)_replicas)|job.*|namespace_status_phase|node.*|persistentvolumeclaim_resource_requests_storage_bytes|pod_(container_(info|resource_(limits|requests)|status_(last_terminated_reason|restarts_total|waiting_reason))|info|owner|start_time|status_(phase|reason))|replicaset.*|resourcequota|statefulset.*))") + action = "keep" + } + } + } +--- +# Source: k8s-monitoring/templates/alloy-modules-configmaps.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-module-system +data: + node-exporter_metrics.alloy: | + /* + Module: job-node_exporter + Description: Scrapes node_exporter + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "kubernetes" { + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [] is all namespaces)" + optional = true + } + + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"app.kubernetes.io/name=prometheus-node-exporter\"])" + optional = true + } + + argument "port_name" { + comment = "The of the port to scrape metrics from (default: metrics)" + optional = true + } + + // node_exporter service discovery for all of the pods + discovery.kubernetes "node_exporter" { + role = "pod" + + selectors { + role = "pod" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["app.kubernetes.io/name=prometheus-node-exporter"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, []) + } + } + + // node_exporter relabelings (pre-scrape) + discovery.relabel "kubernetes" { + targets = discovery.kubernetes.node_exporter.targets + + // keep only the specified metrics port name, and pods that are Running and ready + rule { + source_labels = [ + "__meta_kubernetes_pod_container_port_name", + "__meta_kubernetes_pod_phase", + "__meta_kubernetes_pod_ready", + ] + separator = "@" + regex = coalesce(argument.port_name.value, "metrics") + "@Running@true" + action = "keep" + } + + // drop any init containers + rule { + source_labels = ["__meta_kubernetes_pod_container_init"] + regex = "true" + action = "drop" + } + + // set the namespace label + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the pod label + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + + // set the container label + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + + // set a workload label + rule { + source_labels = [ + "__meta_kubernetes_pod_controller_kind", + "__meta_kubernetes_pod_controller_name", + ] + separator = "/" + target_label = "workload" + } + // remove the hash from the ReplicaSet + rule { + source_labels = ["workload"] + regex = "(ReplicaSet/.+)-.+" + target_label = "workload" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_name", + "__meta_kubernetes_pod_label_k8s_app", + "__meta_kubernetes_pod_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set the component if specified as metadata labels "component:" or "app.kubernetes.io/component:" or "k8s-component:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_component", + "__meta_kubernetes_pod_label_k8s_component", + "__meta_kubernetes_pod_label_component", + ] + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "component" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + export "output" { + value = discovery.relabel.kubernetes.output + } + } + + declare "local" { + argument "port" { + comment = "The port to use (default: 9100)" + optional = true + } + + // arguments for local (static) + discovery.relabel "local" { + targets = [ + { + "__address__" = "localhost" + format("%s", coalesce(argument.port.value, "9100")), + "source" = "local", + }, + ] + } + + export "output" { + value = discovery.relabel.local.output + } + } + + declare "scrape" { + argument "targets" { + comment = "Must be a list() of targets" + } + + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + + argument "job_label" { + comment = "The job label to add for all node_exporter metric (default: integrations/node_exporter)" + optional = true + } + + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + + argument "clustering" { + // Docs: https://node_exporter.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + // node_exporter scrape job + prometheus.scrape "node_exporter" { + job_name = coalesce(argument.job_label.value, "integrations/node_exporter") + forward_to = [prometheus.relabel.node_exporter.receiver] + targets = argument.targets.value + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // node_exporter metric relabelings (post-scrape) + prometheus.relabel "node_exporter" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|scrape_(duration_seconds|series_added|samples_(post_metric_relabeling|scraped))|node_(arp_entries|boot_time_seconds|context_switches_total|cpu_seconds_total|disk_(io_time_seconds_total|io_time_weighted_seconds_total|read_(bytes_total|time_seconds_total)|reads_completed_total|write_time_seconds_total|writes_completed_total|written_bytes_total)|file(fd_(allocated|maximum)|system_(avail_bytes|device_error|files(_free)?|readonly|size_bytes))|intr_total|load(1|15|5)|md_disks(_required)?|memory_(Active_(anon_bytes|bytes|file_bytes)|Anon(HugePages_bytes|Pages_bytes)|Bounce_bytes|Buffers_bytes|Cached_bytes|CommitLimit_bytes|Committed_AS_bytes|DirectMap(1G|2M|4k)_bytes|Dirty_bytes|HugePages_(Free|Rsvd|Surp|Total)|Hugepagesize_bytes|Inactive_(anon_bytes|bytes|file_bytes)|Mapped_bytes|Mem(Available|Free|Total)_bytes|S(Reclaimable|Unreclaim)_bytes|Shmem(HugePages_bytes|PmdMapped_bytes|_bytes)|Slab_bytes|SwapTotal_bytes|Vmalloc(Chunk|Total|Used)_bytes|Writeback(Tmp|)_bytes)|netstat_(Icmp6_(InErrors|InMsgs|OutMsgs)|Icmp_(InErrors|InMsgs|OutMsgs)|IpExt_(InOctets|OutOctets)|TcpExt_(Listen(Drops|Overflows)|TCPSynRetrans)|Tcp_(InErrs|InSegs|OutRsts|OutSegs|RetransSegs)|Udp6_(InDatagrams|InErrors|NoPorts|OutDatagrams|RcvbufErrors|SndbufErrors)|Udp(Lite|)_(InDatagrams|InErrors|NoPorts|OutDatagrams|RcvbufErrors|SndbufErrors))|network_(carrier|info|mtu_bytes|receive_(bytes_total|compressed_total|drop_total|errs_total|fifo_total|multicast_total|packets_total)|speed_bytes|transmit_(bytes_total|compressed_total|drop_total|errs_total|fifo_total|multicast_total|packets_total|queue_length)|up)|nf_conntrack_(entries(_limit)?|limit)|os_info|sockstat_(FRAG6|FRAG|RAW6|RAW|TCP6|TCP_(alloc|inuse|mem(_bytes)?|orphan|tw)|UDP6|UDPLITE6|UDPLITE|UDP_(inuse|mem(_bytes)?)|sockets_used)|softnet_(dropped_total|processed_total|times_squeezed_total)|systemd_unit_state|textfile_scrape_error|time_zone_offset_seconds|timex_(estimated_error_seconds|maxerror_seconds|offset_seconds|sync_status)|uname_info|vmstat_(oom_kill|pgfault|pgmajfault|pgpgin|pgpgout|pswpin|pswpout)|process_(max_fds|open_fds)))") + action = "keep" + } + + // Drop metrics for certain file systems + rule { + source_labels = ["__name__", "fstype"] + separator = "@" + regex = "node_filesystem.*@(tempfs)" + action = "drop" + } + } + } +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + name: k8smon-kube-state-metrics +rules: + +- apiGroups: ["certificates.k8s.io"] + resources: + - certificatesigningrequests + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - configmaps + verbs: ["list", "watch"] + +- apiGroups: ["batch"] + resources: + - cronjobs + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "apps"] + resources: + - daemonsets + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "apps"] + resources: + - deployments + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - endpoints + verbs: ["list", "watch"] + +- apiGroups: ["autoscaling"] + resources: + - horizontalpodautoscalers + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "networking.k8s.io"] + resources: + - ingresses + verbs: ["list", "watch"] + +- apiGroups: ["batch"] + resources: + - jobs + verbs: ["list", "watch"] + +- apiGroups: ["coordination.k8s.io"] + resources: + - leases + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - limitranges + verbs: ["list", "watch"] + +- apiGroups: ["admissionregistration.k8s.io"] + resources: + - mutatingwebhookconfigurations + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - namespaces + verbs: ["list", "watch"] + +- apiGroups: ["networking.k8s.io"] + resources: + - networkpolicies + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - nodes + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - persistentvolumeclaims + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - persistentvolumes + verbs: ["list", "watch"] + +- apiGroups: ["policy"] + resources: + - poddisruptionbudgets + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - pods + verbs: ["list", "watch"] + +- apiGroups: ["extensions", "apps"] + resources: + - replicasets + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - replicationcontrollers + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - resourcequotas + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - secrets + verbs: ["list", "watch"] + +- apiGroups: [""] + resources: + - services + verbs: ["list", "watch"] + +- apiGroups: ["apps"] + resources: + - statefulsets + verbs: ["list", "watch"] + +- apiGroups: ["storage.k8s.io"] + resources: + - storageclasses + verbs: ["list", "watch"] + +- apiGroups: ["admissionregistration.k8s.io"] + resources: + - validatingwebhookconfigurations + verbs: ["list", "watch"] + +- apiGroups: ["storage.k8s.io"] + resources: + - volumeattachments + verbs: ["list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-logs +subjects: + - kind: ServiceAccount + name: k8smon-alloy-logs + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-metrics +subjects: + - kind: ServiceAccount + name: k8smon-alloy-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-singleton +subjects: + - kind: ServiceAccount + name: k8smon-alloy-singleton + namespace: default +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + name: k8smon-kube-state-metrics +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-kube-state-metrics +subjects: +- kind: ServiceAccount + name: k8smon-kube-state-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics-cluster + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + clusterIP: 'None' + publishNotReadyAddresses: true + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + ports: + # Do not include the -metrics suffix in the port name, otherwise metrics + # can be double-collected with the non-headless Service if it's also + # enabled. + # + # This service should only be used for clustering, and not metric + # collection. + - name: http + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-kube-state-metrics + namespace: default + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + annotations: +spec: + type: "ClusterIP" + ports: + - name: "http" + protocol: TCP + port: 8080 + targetPort: 8080 + + selector: + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-node-exporter + namespace: default + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon + annotations: + prometheus.io/scrape: "true" +spec: + type: ClusterIP + ports: + - port: 9100 + targetPort: 9100 + protocol: TCP + name: metrics + selector: + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon + annotations: + prometheus.io/scrape: "true" +spec: + type: ClusterIP + ports: + - port: 9182 + targetPort: metrics + protocol: TCP + appProtocol: http + name: metrics + selector: + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + labels: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-logs + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: varlog + mountPath: /var/log + readOnly: true + - name: dockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-logs + - name: varlog + hostPath: + path: /var/log + - name: dockercontainers + hostPath: + path: /var/lib/docker/containers +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/node-exporter/templates/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-node-exporter + namespace: default + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon +spec: + selector: + matchLabels: + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + revisionHistoryLimit: 10 + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + cluster-autoscaler.kubernetes.io/safe-to-evict: "true" + k8s.grafana.com/logs.job: integrations/node_exporter + labels: + helm.sh/chart: node-exporter-4.42.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: node-exporter + app.kubernetes.io/name: node-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "1.8.2" + release: k8smon + spec: + automountServiceAccountToken: false + securityContext: + fsGroup: 65534 + runAsGroup: 65534 + runAsNonRoot: true + runAsUser: 65534 + serviceAccountName: k8smon-node-exporter + containers: + - name: node-exporter + image: quay.io/prometheus/node-exporter:v1.8.2 + imagePullPolicy: IfNotPresent + args: + - --path.procfs=/host/proc + - --path.sysfs=/host/sys + - --path.rootfs=/host/root + - --path.udev.data=/host/root/run/udev/data + - --web.listen-address=[$(HOST_IP)]:9100 + securityContext: + readOnlyRootFilesystem: true + env: + - name: HOST_IP + value: 0.0.0.0 + ports: + - name: metrics + containerPort: 9100 + protocol: TCP + livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: / + port: 9100 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: / + port: 9100 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + volumeMounts: + - name: proc + mountPath: /host/proc + readOnly: true + - name: sys + mountPath: /host/sys + readOnly: true + - name: root + mountPath: /host/root + mountPropagation: HostToContainer + readOnly: true + hostNetwork: true + hostPID: true + hostIPC: false + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: eks.amazonaws.com/compute-type + operator: NotIn + values: + - fargate + nodeSelector: + kubernetes.io/os: linux + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: proc + hostPath: + path: /proc + - name: sys + hostPath: + path: /sys + - name: root + hostPath: + path: / +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/windows-exporter/templates/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-windows-exporter + namespace: default + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon +spec: + selector: + matchLabels: + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + cluster-autoscaler.kubernetes.io/safe-to-evict: "true" + k8s.grafana.com/logs.job: integrations/windows_exporter + labels: + helm.sh/chart: windows-exporter-0.7.1 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: windows-exporter + app.kubernetes.io/name: windows-exporter + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "0.29.2" + release: k8smon + spec: + automountServiceAccountToken: false + securityContext: + windowsOptions: + hostProcess: true + runAsUserName: NT AUTHORITY\system + initContainers: + - name: configure-firewall + image: ghcr.io/prometheus-community/windows-exporter:0.29.2 + command: [ "powershell" ] + args: [ "New-NetFirewallRule", "-DisplayName", "'windows-exporter'", "-Direction", "inbound", "-Profile", "Any", "-Action", "Allow", "-LocalPort", "9182", "-Protocol", "TCP" ] + serviceAccountName: k8smon-windows-exporter + containers: + - name: windows-exporter + image: ghcr.io/prometheus-community/windows-exporter:0.29.2 + imagePullPolicy: IfNotPresent + args: + - --config.file=%CONTAINER_SANDBOX_MOUNT_POINT%/config.yml + - --collector.textfile.directories=%CONTAINER_SANDBOX_MOUNT_POINT% + - --web.listen-address=:9182 + env: + ports: + - name: metrics + containerPort: 9182 + protocol: TCP + livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /health + port: 9182 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /health + port: 9182 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + volumeMounts: + - name: config + mountPath: /config.yml + subPath: config.yml + hostNetwork: true + hostPID: true + nodeSelector: + kubernetes.io/os: windows + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: config + configMap: + name: k8smon-windows-exporter +--- +# Source: k8s-monitoring/charts/alloy-singleton/templates/controllers/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: k8smon-alloy-singleton + labels: + helm.sh/chart: alloy-singleton-0.10.0 + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-singleton + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-singleton + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-singleton +--- +# Source: k8s-monitoring/charts/clusterMetrics/charts/kube-state-metrics/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: k8smon-kube-state-metrics + namespace: default + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon +spec: + selector: + matchLabels: + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + replicas: 1 + strategy: + type: Recreate + revisionHistoryLimit: 10 + template: + metadata: + labels: + helm.sh/chart: kube-state-metrics-5.27.0 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: metrics + app.kubernetes.io/part-of: kube-state-metrics + app.kubernetes.io/name: kube-state-metrics + app.kubernetes.io/instance: k8smon + app.kubernetes.io/version: "2.14.0" + release: k8smon + spec: + automountServiceAccountToken: true + hostNetwork: false + serviceAccountName: k8smon-kube-state-metrics + securityContext: + fsGroup: 65534 + runAsGroup: 65534 + runAsNonRoot: true + runAsUser: 65534 + seccompProfile: + type: RuntimeDefault + containers: + - name: kube-state-metrics + args: + - --port=8080 + - --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments + - --metric-labels-allowlist=nodes=[agentpool,alpha.eksctl.io/cluster-name,alpha.eksctl.io/nodegroup-name,beta.kubernetes.io/instance-type,cloud.google.com/gke-nodepool,cluster_name,ec2_amazonaws_com_Name,ec2_amazonaws_com_aws_autoscaling_groupName,ec2_amazonaws_com_aws_autoscaling_group_name,ec2_amazonaws_com_name,eks_amazonaws_com_nodegroup,k8s_io_cloud_provider_aws,karpenter.sh/nodepool,kubernetes.azure.com/cluster,kubernetes.io/arch,kubernetes.io/hostname,kubernetes.io/os,node.kubernetes.io/instance-type,topology.kubernetes.io/region,topology.kubernetes.io/zone] + imagePullPolicy: IfNotPresent + image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.14.0 + ports: + - containerPort: 8080 + name: "http" + livenessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /livez + port: 8080 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + readinessProbe: + failureThreshold: 3 + httpGet: + httpHeaders: + path: /readyz + port: 8081 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + resources: + {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + nodeSelector: + kubernetes.io/os: linux +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + podManagementPolicy: Parallel + minReadySeconds: 10 + serviceName: k8smon-alloy-metrics + selector: + matchLabels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-metrics + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --cluster.enabled=true + - --cluster.join-addresses=k8smon-alloy-metrics-cluster + - --cluster.name="alloy-metrics" + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/tests/integration/integration-cert-manager/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/integration-cert-manager/.rendered/output.yaml new file mode 100644 index 000000000..14505e225 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/integration-cert-manager/.rendered/output.yaml @@ -0,0 +1,683 @@ +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-metrics + namespace: default + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-metrics + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "cert-manager-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "cert-manager-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + + declare "cert_manager_integration" { + argument "metrics_destinations" { + comment = "Must be a list of metric destinations where collected metrics should be forwarded to" + } + + remote.kubernetes.configmap "cert_manager" { + name = "k8smon-alloy-module-kubernetes" + namespace = "default" + } + + import.string "cert_manager" { + content = remote.kubernetes.configmap.cert_manager.data["cert-manager_metrics.alloy"] + } + + cert_manager.kubernetes "cert_manager" { + label_selectors = ["app.kubernetes.io/name=cert-manager"] + port_name = "http-metrics" + } + + cert_manager.scrape "cert_manager" { + targets = cert_manager.kubernetes.cert_manager.output + clustering = true + job_label = "integrations/cert-manager" + keep_metrics = "up|scrape_samples_scraped|certmanager_.*" + scrape_interval = "60s" + max_cache_size = 100000 + forward_to = argument.metrics_destinations.value + } + } + cert_manager_integration "integration" { + metrics_destinations = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + // Self Reporting + prometheus.exporter.unix "kubernetes_monitoring_telemetry" { + set_collectors = ["textfile"] + textfile { + directory = "/etc/alloy" + } + } + + discovery.relabel "kubernetes_monitoring_telemetry" { + targets = prometheus.exporter.unix.kubernetes_monitoring_telemetry.targets + rule { + target_label = "instance" + action = "replace" + replacement = "k8smon" + } + rule { + target_label = "job" + action = "replace" + replacement = "integrations/kubernetes/kubernetes_monitoring_telemetry" + } + } + + prometheus.scrape "kubernetes_monitoring_telemetry" { + job_name = "integrations/kubernetes/kubernetes_monitoring_telemetry" + targets = discovery.relabel.kubernetes_monitoring_telemetry.output + scrape_interval = "1h" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kubernetes_monitoring_telemetry.receiver] + } + + prometheus.relabel "kubernetes_monitoring_telemetry" { + rule { + source_labels = ["__name__"] + regex = "grafana_kubernetes_monitoring_.*" + action = "keep" + } + forward_to = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + + + + self-reporting-metric.prom: | + # HELP grafana_kubernetes_monitoring_build_info A metric to report the version of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_build_info gauge + grafana_kubernetes_monitoring_build_info{version="2.0.0-rc.5", namespace="default"} 1 + # HELP grafana_kubernetes_monitoring_feature_info A metric to report the enabled features of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_feature_info gauge + grafana_kubernetes_monitoring_feature_info{feature="integrations", sources="cert-manager", version="1.0.0"} 1 +--- +# Source: k8s-monitoring/templates/alloy-modules-configmaps.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-module-kubernetes +data: + cert-manager_metrics.alloy: | + /* + Module: job-cert-manager + Description: Scrapes cert-manager + + Note: Every argument except for "forward_to" is optional, and does have a defined default value. However, the values for these + arguments are not defined using the default = " ... " argument syntax, but rather using the coalesce(argument.value, " ... "). + This is because if the argument passed in from another consuming module is set to null, the default = " ... " syntax will + does not override the value passed in, where coalesce() will return the first non-null value. + */ + declare "kubernetes" { + // arguments for kubernetes discovery + argument "namespaces" { + comment = "The namespaces to look for targets in (default: [] is all namespaces)" + optional = true + } + + argument "field_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [])" + optional = true + } + + argument "label_selectors" { + // Docs: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ + comment = "The label selectors to use to find matching targets (default: [\"app.kubernetes.io/name=cert-manager\"])" + optional = true + } + + argument "port_name" { + comment = "The of the port to scrape metrics from (default: http-metrics)" + optional = true + } + + // cert-manager service discovery for all of the pods + discovery.kubernetes "cert_manager" { + role = "pod" + + selectors { + role = "pod" + field = join(coalesce(argument.field_selectors.value, []), ",") + label = join(coalesce(argument.label_selectors.value, ["app.kubernetes.io/name=cert-manager"]), ",") + } + + namespaces { + names = coalesce(argument.namespaces.value, []) + } + } + + // cert-manager relabelings (pre-scrape) + discovery.relabel "kubernetes" { + targets = discovery.kubernetes.cert_manager.targets + + // keep only the specified metrics port name, and pods that are Running and ready + rule { + source_labels = [ + "__meta_kubernetes_pod_container_port_name", + "__meta_kubernetes_pod_phase", + "__meta_kubernetes_pod_ready", + ] + separator = "@" + regex = coalesce(argument.port_name.value, "http-metrics") + "@Running@true" + action = "keep" + } + + // drop any init containers + rule { + source_labels = ["__meta_kubernetes_pod_container_init"] + regex = "true" + action = "drop" + } + + // set the namespace label + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + + // set the pod label + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + + // set the container label + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + + // set a workload label + rule { + source_labels = [ + "__meta_kubernetes_pod_controller_kind", + "__meta_kubernetes_pod_controller_name", + ] + separator = "/" + target_label = "workload" + } + // remove the hash from the ReplicaSet + rule { + source_labels = ["workload"] + regex = "(ReplicaSet/.+)-.+" + target_label = "workload" + } + + // set the app name if specified as metadata labels "app:" or "app.kubernetes.io/name:" or "k8s-app:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_name", + "__meta_kubernetes_pod_label_k8s_app", + "__meta_kubernetes_pod_label_app", + ] + separator = ";" + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "app" + } + + // set the component if specified as metadata labels "component:" or "app.kubernetes.io/component:" or "k8s-component:" + rule { + action = "replace" + source_labels = [ + "__meta_kubernetes_pod_label_app_kubernetes_io_component", + "__meta_kubernetes_pod_label_k8s_component", + "__meta_kubernetes_pod_label_component", + ] + regex = "^(?:;*)?([^;]+).*$" + replacement = "$1" + target_label = "component" + } + + // set a source label + rule { + action = "replace" + replacement = "kubernetes" + target_label = "source" + } + } + + export "output" { + value = discovery.relabel.kubernetes.output + } + } + + declare "scrape" { + argument "targets" { + comment = "Must be a list() of targets" + } + + argument "forward_to" { + comment = "Must be a list(MetricsReceiver) where collected logs should be forwarded to" + } + + argument "job_label" { + comment = "The job label to add for all cert-manager metric (default: integrations/cert-manager)" + optional = true + } + + argument "keep_metrics" { + comment = "A regular expression of metrics to keep (default: see below)" + optional = true + } + + argument "drop_metrics" { + comment = "A regular expression of metrics to drop (default: see below)" + optional = true + } + + argument "scrape_interval" { + comment = "How often to scrape metrics from the targets (default: 60s)" + optional = true + } + + argument "scrape_timeout" { + comment = "How long before a scrape times out (default: 10s)" + optional = true + } + + argument "max_cache_size" { + comment = "The maximum number of elements to hold in the relabeling cache (default: 100000). This should be at least 2x-5x your largest scrape target or samples appended rate." + optional = true + } + + argument "clustering" { + // Docs: https://grafana.com/docs/agent/latest/flow/concepts/clustering/ + comment = "Whether or not clustering should be enabled (default: false)" + optional = true + } + + // cert-manager scrape job + prometheus.scrape "cert_manager" { + job_name = coalesce(argument.job_label.value, "integrations/cert-manager") + forward_to = [prometheus.relabel.cert_manager.receiver] + targets = argument.targets.value + scrape_interval = coalesce(argument.scrape_interval.value, "60s") + scrape_timeout = coalesce(argument.scrape_timeout.value, "10s") + + clustering { + enabled = coalesce(argument.clustering.value, false) + } + } + + // cert-manager metric relabelings (post-scrape) + prometheus.relabel "cert_manager" { + forward_to = argument.forward_to.value + max_cache_size = coalesce(argument.max_cache_size.value, 100000) + + // drop metrics that match the drop_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.drop_metrics.value, "(^(go|process)_.+$)") + action = "drop" + } + + // keep only metrics that match the keep_metrics regex + rule { + source_labels = ["__name__"] + regex = coalesce(argument.keep_metrics.value, "(up|(certmanager_(certificate_(expiration_timestamp_seconds|ready_status)|clock_time_seconds|controller_sync_call_count|http_acme_client_request_(count|duration_seconds_(count|sum)))|container_(cpu_(cfs_(periods|throttled_periods)_total|usage_seconds_total)|memory_usage_bytes|network_(receive|transmit)_bytes_total)|kube_pod_container_resource_(limits|requests)_(cpu_cores|memory_bytes)))") + action = "keep" + } + } + } +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-metrics +subjects: + - kind: ServiceAccount + name: k8smon-alloy-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics-cluster + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + clusterIP: 'None' + publishNotReadyAddresses: true + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + ports: + # Do not include the -metrics suffix in the port name, otherwise metrics + # can be double-collected with the non-headless Service if it's also + # enabled. + # + # This service should only be used for clustering, and not metric + # collection. + - name: http + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + podManagementPolicy: Parallel + minReadySeconds: 10 + serviceName: k8smon-alloy-metrics + selector: + matchLabels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-metrics + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --cluster.enabled=true + - --cluster.join-addresses=k8smon-alloy-metrics-cluster + - --cluster.name="alloy-metrics" + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/tests/integration/integration-mysql/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/integration-mysql/.rendered/output.yaml new file mode 100644 index 000000000..14d2baafc --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/integration-mysql/.rendered/output.yaml @@ -0,0 +1,957 @@ +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-logs + namespace: default + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-metrics + namespace: default + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/templates/destination_secret.yaml +apiVersion: v1 +kind: Secret +metadata: + name: "localloki-k8smon-k8s-monitoring" + namespace: "default" +type: Opaque +data: + tenantId: "MQ==" + username: "bG9raQ==" + password: "bG9raXBhc3N3b3Jk" +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-metrics + namespace: default +data: + config.alloy: |- + // Destination: localPrometheus (prometheus) + otelcol.exporter.prometheus "localprometheus" { + add_metric_suffixes = true + forward_to = [prometheus.remote_write.localprometheus.receiver] + } + + prometheus.remote_write "localprometheus" { + endpoint { + url = "http://prometheus-server.prometheus.svc:9090/api/v1/write" + headers = { + } + tls_config { + insecure_skip_verify = false + } + send_native_histograms = false + + queue_config { + capacity = 10000 + min_shards = 1 + max_shards = 50 + max_samples_per_send = 2000 + batch_send_deadline = "5s" + min_backoff = "30ms" + max_backoff = "5s" + retry_on_http_429 = true + sample_age_limit = "0s" + } + + write_relabel_config { + source_labels = ["cluster"] + regex = "" + replacement = "mysql-integration-test" + target_label = "cluster" + } + write_relabel_config { + source_labels = ["k8s.cluster.name"] + regex = "" + replacement = "mysql-integration-test" + target_label = "cluster" + } + } + + wal { + truncate_frequency = "2h" + min_keepalive_time = "5m" + max_keepalive_time = "8h" + } + } + + declare "mysql_integration" { + argument "metrics_destinations" { + comment = "Must be a list of metric destinations where collected metrics should be forwarded to" + } + + + remote.kubernetes.secret "test_database" { + name = "test-database-mysql" + namespace = "mysql" + } + + prometheus.exporter.mysql "test_database" { + data_source_name = string.format("%s:%s@(%s:%d)/", + "root", + remote.kubernetes.secret.test_database.data["mysql-root-password"], + "test-database-mysql.mysql.svc", + 3306, + ) + enable_collectors = ["heartbeat","mysql.user"] + } + prometheus.scrape "test_database" { + targets = prometheus.exporter.mysql.test_database.targets + job_name = "integration/mysql" + forward_to = [prometheus.relabel.test_database.receiver] + } + + prometheus.relabel "test_database" { + max_cache_size = 100000 + rule { + target_label = "instance" + replacement = "test-database" + } + forward_to = argument.metrics_destinations.value + } + } + mysql_integration "integration" { + metrics_destinations = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + // Self Reporting + prometheus.exporter.unix "kubernetes_monitoring_telemetry" { + set_collectors = ["textfile"] + textfile { + directory = "/etc/alloy" + } + } + + discovery.relabel "kubernetes_monitoring_telemetry" { + targets = prometheus.exporter.unix.kubernetes_monitoring_telemetry.targets + rule { + target_label = "instance" + action = "replace" + replacement = "k8smon" + } + rule { + target_label = "job" + action = "replace" + replacement = "integrations/kubernetes/kubernetes_monitoring_telemetry" + } + } + + prometheus.scrape "kubernetes_monitoring_telemetry" { + job_name = "integrations/kubernetes/kubernetes_monitoring_telemetry" + targets = discovery.relabel.kubernetes_monitoring_telemetry.output + scrape_interval = "1h" + clustering { + enabled = true + } + forward_to = [prometheus.relabel.kubernetes_monitoring_telemetry.receiver] + } + + prometheus.relabel "kubernetes_monitoring_telemetry" { + rule { + source_labels = ["__name__"] + regex = "grafana_kubernetes_monitoring_.*" + action = "keep" + } + forward_to = [ + prometheus.remote_write.localprometheus.receiver, + ] + } + + + + + self-reporting-metric.prom: | + # HELP grafana_kubernetes_monitoring_build_info A metric to report the version of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_build_info gauge + grafana_kubernetes_monitoring_build_info{version="2.0.0-rc.5", namespace="default"} 1 + # HELP grafana_kubernetes_monitoring_feature_info A metric to report the enabled features of the Kubernetes Monitoring Helm chart + # TYPE grafana_kubernetes_monitoring_feature_info gauge + grafana_kubernetes_monitoring_feature_info{feature="podLogs", method="volumes", version="1.0.0"} 1 + grafana_kubernetes_monitoring_feature_info{feature="integrations", sources="mysql", version="1.0.0"} 1 +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-logs + namespace: default +data: + config.alloy: |- + // Destination: localLoki (loki) + otelcol.exporter.loki "localloki" { + forward_to = [loki.write.localloki.receiver] + } + + loki.write "localloki" { + endpoint { + url = "http://loki.loki.svc:3100/loki/api/v1/push" + tenant_id = nonsensitive(remote.kubernetes.secret.localloki.data["tenantId"]) + basic_auth { + username = nonsensitive(remote.kubernetes.secret.localloki.data["username"]) + password = remote.kubernetes.secret.localloki.data["password"] + } + tls_config { + insecure_skip_verify = false + } + } + external_labels = { + cluster = "mysql-integration-test", + "k8s_cluster_name" = "mysql-integration-test", + } + } + + remote.kubernetes.secret "localloki" { + name = "localloki-k8smon-k8s-monitoring" + namespace = "default" + } + + // Feature: Pod Logs + declare "pod_logs" { + argument "logs_destinations" { + comment = "Must be a list of log destinations where collected logs should be forwarded to" + } + + discovery.relabel "filtered_pods" { + targets = discovery.kubernetes.pods.targets + rule { + source_labels = ["__meta_kubernetes_namespace"] + action = "replace" + target_label = "namespace" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + action = "replace" + target_label = "pod" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + action = "replace" + target_label = "container" + } + rule { + source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"] + separator = "/" + action = "replace" + replacement = "$1" + target_label = "job" + } + rule { + source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_name"] + regex = "(.+)" + target_label = "app_kubernetes_io_name" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_k8s_grafana_com_logs_job"] + regex = "(.+)" + target_label = "job" + } + + // set the container runtime as a label + rule { + action = "replace" + source_labels = ["__meta_kubernetes_pod_container_id"] + regex = "^(\\S+):\\/\\/.+$" + replacement = "$1" + target_label = "tmp_container_runtime" + } + rule { + source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_instance"] + separator = ";" + regex = "test-database" + target_label = "integration" + replacement = "mysql" + } + rule { + source_labels = ["__meta_kubernetes_pod_label_app_kubernetes_io_instance"] + separator = ";" + regex = "test-database" + target_label = "instance" + replacement = "test-database" + } + } + + discovery.kubernetes "pods" { + role = "pod" + selectors { + role = "pod" + field = "spec.nodeName=" + env("HOSTNAME") + } + } + + discovery.relabel "filtered_pods_with_paths" { + targets = discovery.relabel.filtered_pods.output + + rule { + source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"] + separator = "/" + action = "replace" + replacement = "/var/log/pods/*$1/*.log" + target_label = "__path__" + } + } + + local.file_match "pod_logs" { + path_targets = discovery.relabel.filtered_pods_with_paths.output + } + + loki.source.file "pod_logs" { + targets = local.file_match.pod_logs.targets + forward_to = [loki.process.pod_logs.receiver] + } + + loki.process "pod_logs" { + stage.match { + selector = "{tmp_container_runtime=~\"containerd|cri-o\"}" + // the cri processing stage extracts the following k/v pairs: log, stream, time, flags + stage.cri {} + + // Set the extract flags and stream values as labels + stage.labels { + values = { + flags = "", + stream = "", + } + } + } + + stage.match { + selector = "{tmp_container_runtime=\"docker\"}" + // the docker processing stage extracts the following k/v pairs: log, stream, time + stage.docker {} + + // Set the extract stream value as a label + stage.labels { + values = { + stream = "", + } + } + } + + // Drop the filename label, since it's not really useful in the context of Kubernetes, where we already have cluster, + // namespace, pod, and container labels. Drop any structured metadata. Also drop the temporary + // container runtime label as it is no longer needed. + stage.label_drop { + values = [ + "filename", + "tmp_container_runtime", + ] + } + // Integration: MySQL + stage.match { + selector = "{integration=\"mysql\"}" + + stage.regex { + expression = `(?P<timestamp>.+) (?P<thread>[\d]+) \[(?P<label>.+?)\]( \[(?P<err_code>.+?)\] \[(?P<subsystem>.+?)\])? (?P<msg>.+)` + } + + stage.labels { + values = { + level = "label", + err_code = "err_code", + subsystem = "subsystem", + } + } + + stage.drop { + expression = "^ *$" + drop_counter_reason = "drop empty lines" + } + + stage.static_labels { + values = { + job = "integrations/mysql", + } + } + + stage.label_drop { + values = ["integration"] + } + } + + forward_to = argument.logs_destinations.value + } + } + pod_logs "feature" { + logs_destinations = [ + loki.write.localloki.receiver, + ] + } +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-logs +subjects: + - kind: ServiceAccount + name: k8smon-alloy-logs + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-metrics +subjects: + - kind: ServiceAccount + name: k8smon-alloy-metrics + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/cluster_service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics-cluster + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + clusterIP: 'None' + publishNotReadyAddresses: true + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + ports: + # Do not include the -metrics suffix in the port name, otherwise metrics + # can be double-collected with the non-headless Service if it's also + # enabled. + # + # This service should only be used for clustering, and not metric + # collection. + - name: http + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-logs/templates/controllers/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-alloy-logs + labels: + helm.sh/chart: alloy-logs-0.10.0 + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + labels: + app.kubernetes.io/name: alloy-logs + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-logs + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: varlog + mountPath: /var/log + readOnly: true + - name: dockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-logs + - name: varlog + hostPath: + path: /var/log + - name: dockercontainers + hostPath: + path: /var/lib/docker/containers +--- +# Source: k8s-monitoring/charts/alloy-metrics/templates/controllers/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: k8smon-alloy-metrics + labels: + helm.sh/chart: alloy-metrics-0.10.0 + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + replicas: 1 + podManagementPolicy: Parallel + minReadySeconds: 10 + serviceName: k8smon-alloy-metrics + selector: + matchLabels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + k8s.grafana.com/logs.job: integrations/alloy + labels: + app.kubernetes.io/name: alloy-metrics + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-metrics + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --cluster.enabled=true + - --cluster.join-addresses=k8smon-alloy-metrics-cluster + - --cluster.name="alloy-metrics" + - --stability.level=generally-available + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + add: + - CHOWN + - DAC_OVERRIDE + - FOWNER + - FSETID + - KILL + - SETGID + - SETUID + - SETPCAP + - NET_BIND_SERVICE + - NET_RAW + - SYS_CHROOT + - MKNOD + - AUDIT_WRITE + - SETFCAP + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + volumes: + - name: config + configMap: + name: k8smon-alloy-metrics diff --git a/charts/k8s-monitoring/tests/integration/profiling/.rendered/output.yaml b/charts/k8s-monitoring/tests/integration/profiling/.rendered/output.yaml new file mode 100644 index 000000000..8a18b5348 --- /dev/null +++ b/charts/k8s-monitoring/tests/integration/profiling/.rendered/output.yaml @@ -0,0 +1,1108 @@ +--- +# Source: k8s-monitoring/charts/alloy-profiles/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8smon-alloy-profiles + namespace: default + labels: + helm.sh/chart: alloy-profiles-0.10.0 + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +--- +# Source: k8s-monitoring/templates/alloy-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: k8smon-alloy-profiles + namespace: default +data: + config.alloy: |- + // Destination: pyro (pyroscope) + pyroscope.write "pyro" { + endpoint { + url = "http://pyroscope.pyroscope.svc:4040" + headers = { + } + tls_config { + insecure_skip_verify = false + } + } + + external_labels = { + cluster = "profiling-feature-test", + k8s_cluster_name = "profiling-feature-test", + } + } + + // Feature: Profiling + declare "profiling" { + argument "profiles_destinations" { + comment = "Must be a list of profile destinations where collected profiles should be forwarded to" + } + // Profiles: eBPF + discovery.kubernetes "ebpf_pods" { + selectors { + role = "pod" + field = "spec.nodeName=" + env("HOSTNAME") + } + role = "pod" + } + + discovery.relabel "ebpf_pods" { + targets = discovery.kubernetes.ebpf_pods.targets + rule { + source_labels = ["__meta_kubernetes_pod_phase"] + regex = "Succeeded|Failed|Completed" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + target_label = "node" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + // provide arbitrary service_name label, otherwise it will be set to {__meta_kubernetes_namespace}/{__meta_kubernetes_pod_container_name} + rule { + source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_container_name"] + separator = "@" + regex = "(.*)@(.*)" + replacement = "ebpf/${1}/${2}" + target_label = "service_name" + } + } + + pyroscope.ebpf "ebpf_pods" { + targets = discovery.relabel.ebpf_pods.output + demangle = "none" + forward_to = argument.profiles_destinations.value + } + // Profiles: Java + discovery.kubernetes "java_pods" { + selectors { + role = "pod" + field = "spec.nodeName=" + env("HOSTNAME") + } + role = "pod" + } + + discovery.process "java_pods" { + join = discovery.kubernetes.java_pods.targets + } + + discovery.relabel "java_pods" { + targets = discovery.process.java_pods.targets + rule { + source_labels = ["__meta_kubernetes_pod_phase"] + regex = "Succeeded|Failed|Completed" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + regex = "^$" + action = "drop" + } + rule { + source_labels = ["__meta_process_exe"] + action = "keep" + regex = ".*/java$" + } + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + rule { + source_labels = ["__meta_kubernetes_pod_node_name"] + target_label = "node" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + } + + pyroscope.java "java_pods" { + targets = discovery.relabel.java_pods.output + profiling_config { + interval = "60s" + alloc = "512k" + cpu = true + sample_rate = 100 + lock = "10ms" + } + forward_to = argument.profiles_destinations.value + } + // Profiles: pprof + discovery.kubernetes "pprof_pods" { + selectors { + role = "pod" + field = "spec.nodeName=" + env("HOSTNAME") + } + role = "pod" + } + + discovery.relabel "pprof_pods" { + targets = discovery.kubernetes.pprof_pods.targets + rule { + action = "drop" + source_labels = ["__meta_kubernetes_pod_phase"] + regex = "Pending|Succeeded|Failed|Completed" + } + + rule { + regex = "__meta_kubernetes_pod_label_(.+)" + action = "labelmap" + } + rule { + source_labels = ["__meta_kubernetes_namespace"] + target_label = "namespace" + } + rule { + source_labels = ["__meta_kubernetes_pod_name"] + target_label = "pod" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_name"] + target_label = "container" + } + } + + discovery.relabel "pprof_pods_block_default_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port_name"] + regex = "" + action = "keep" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + discovery.relabel "pprof_pods_block_custom_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port_name"] + regex = "" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_port_name"] + target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port_name" + action = "keepequal" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_block_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_block_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + pyroscope.scrape "pyroscope_scrape_block" { + targets = concat(discovery.relabel.pprof_pods_block_default_name.output, discovery.relabel.pprof_pods_block_custom_name.output) + + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + profiling_config { + profile.block { + enabled = true + } + profile.process_cpu { + enabled = false + } + profile.fgprof { + enabled = false + } + profile.godeltaprof_block { + enabled = false + } + profile.godeltaprof_memory { + enabled = false + } + profile.godeltaprof_mutex { + enabled = false + } + profile.goroutine { + enabled = false + } + profile.memory { + enabled = false + } + profile.mutex { + enabled = false + } + } + + forward_to = argument.profiles_destinations.value + } + discovery.relabel "pprof_pods_cpu_default_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port_name"] + regex = "" + action = "keep" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + discovery.relabel "pprof_pods_cpu_custom_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port_name"] + regex = "" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_port_name"] + target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port_name" + action = "keepequal" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_cpu_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + pyroscope.scrape "pyroscope_scrape_cpu" { + targets = concat(discovery.relabel.pprof_pods_cpu_default_name.output, discovery.relabel.pprof_pods_cpu_custom_name.output) + + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + profiling_config { + profile.block { + enabled = false + } + profile.process_cpu { + enabled = true + } + profile.fgprof { + enabled = false + } + profile.godeltaprof_block { + enabled = false + } + profile.godeltaprof_memory { + enabled = false + } + profile.godeltaprof_mutex { + enabled = false + } + profile.goroutine { + enabled = false + } + profile.memory { + enabled = false + } + profile.mutex { + enabled = false + } + } + + forward_to = argument.profiles_destinations.value + } + discovery.relabel "pprof_pods_fgprof_default_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port_name"] + regex = "" + action = "keep" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + discovery.relabel "pprof_pods_fgprof_custom_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port_name"] + regex = "" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_port_name"] + target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port_name" + action = "keepequal" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_fgprof_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + pyroscope.scrape "pyroscope_scrape_fgprof" { + targets = concat(discovery.relabel.pprof_pods_fgprof_default_name.output, discovery.relabel.pprof_pods_fgprof_custom_name.output) + + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + profiling_config { + profile.block { + enabled = false + } + profile.process_cpu { + enabled = false + } + profile.fgprof { + enabled = true + } + profile.godeltaprof_block { + enabled = false + } + profile.godeltaprof_memory { + enabled = false + } + profile.godeltaprof_mutex { + enabled = false + } + profile.goroutine { + enabled = false + } + profile.memory { + enabled = false + } + profile.mutex { + enabled = false + } + } + + forward_to = argument.profiles_destinations.value + } + discovery.relabel "pprof_pods_goroutine_default_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port_name"] + regex = "" + action = "keep" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + discovery.relabel "pprof_pods_goroutine_custom_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port_name"] + regex = "" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_port_name"] + target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port_name" + action = "keepequal" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_goroutine_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + pyroscope.scrape "pyroscope_scrape_goroutine" { + targets = concat(discovery.relabel.pprof_pods_goroutine_default_name.output, discovery.relabel.pprof_pods_goroutine_custom_name.output) + + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + profiling_config { + profile.block { + enabled = false + } + profile.process_cpu { + enabled = false + } + profile.fgprof { + enabled = false + } + profile.godeltaprof_block { + enabled = false + } + profile.godeltaprof_memory { + enabled = false + } + profile.godeltaprof_mutex { + enabled = false + } + profile.goroutine { + enabled = true + } + profile.memory { + enabled = false + } + profile.mutex { + enabled = false + } + } + + forward_to = argument.profiles_destinations.value + } + discovery.relabel "pprof_pods_memory_default_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port_name"] + regex = "" + action = "keep" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + discovery.relabel "pprof_pods_memory_custom_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port_name"] + regex = "" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_port_name"] + target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port_name" + action = "keepequal" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_memory_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + pyroscope.scrape "pyroscope_scrape_memory" { + targets = concat(discovery.relabel.pprof_pods_memory_default_name.output, discovery.relabel.pprof_pods_memory_custom_name.output) + + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + profiling_config { + profile.block { + enabled = false + } + profile.process_cpu { + enabled = false + } + profile.fgprof { + enabled = false + } + profile.godeltaprof_block { + enabled = false + } + profile.godeltaprof_memory { + enabled = false + } + profile.godeltaprof_mutex { + enabled = false + } + profile.goroutine { + enabled = false + } + profile.memory { + enabled = true + } + profile.mutex { + enabled = false + } + } + + forward_to = argument.profiles_destinations.value + } + discovery.relabel "pprof_pods_mutex_default_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port_name"] + regex = "" + action = "keep" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + discovery.relabel "pprof_pods_mutex_custom_name" { + targets = discovery.relabel.pprof_pods.output + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scrape"] + regex = "true" + action = "keep" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port_name"] + regex = "" + action = "drop" + } + rule { + source_labels = ["__meta_kubernetes_pod_container_port_name"] + target_label = "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port_name" + action = "keepequal" + } + + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_scheme"] + action = "replace" + regex = "(https?)" + target_label = "__scheme__" + replacement = "$1" + } + rule { + source_labels = ["__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_path"] + action = "replace" + regex = "(.+)" + target_label = "__profile_path__" + replacement = "$1" + } + rule { + source_labels = ["__address__", "__meta_kubernetes_pod_annotation_profiles_grafana_com_mutex_port"] + action = "replace" + regex = "(.+?)(?::\\d+)?;(\\d+)" + target_label = "__address__" + replacement = "$1:$2" + } + } + + pyroscope.scrape "pyroscope_scrape_mutex" { + targets = concat(discovery.relabel.pprof_pods_mutex_default_name.output, discovery.relabel.pprof_pods_mutex_custom_name.output) + + bearer_token_file = "/var/run/secrets/kubernetes.io/serviceaccount/token" + profiling_config { + profile.block { + enabled = false + } + profile.process_cpu { + enabled = false + } + profile.fgprof { + enabled = false + } + profile.godeltaprof_block { + enabled = false + } + profile.godeltaprof_memory { + enabled = false + } + profile.godeltaprof_mutex { + enabled = false + } + profile.goroutine { + enabled = false + } + profile.memory { + enabled = false + } + profile.mutex { + enabled = true + } + } + + forward_to = argument.profiles_destinations.value + } + } + profiling "feature" { + profiles_destinations = [ + pyroscope.write.pyro.receiver, + ] + } +--- +# Source: k8s-monitoring/charts/alloy-profiles/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: k8smon-alloy-profiles + labels: + helm.sh/chart: alloy-profiles-0.10.0 + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +rules: + # Rules which allow discovery.kubernetes to function. + - apiGroups: + - "" + - "discovery.k8s.io" + - "networking.k8s.io" + resources: + - endpoints + - endpointslices + - ingresses + - nodes + - nodes/proxy + - nodes/metrics + - pods + - services + verbs: + - get + - list + - watch + # Rules which allow loki.source.kubernetes and loki.source.podlogs to work. + - apiGroups: + - "" + resources: + - pods + - pods/log + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "monitoring.grafana.com" + resources: + - podlogs + verbs: + - get + - list + - watch + # Rules which allow mimir.rules.kubernetes to work. + - apiGroups: ["monitoring.coreos.com"] + resources: + - prometheusrules + verbs: + - get + - list + - watch + - nonResourceURLs: + - /metrics + verbs: + - get + # Rules for prometheus.kubernetes.* + - apiGroups: ["monitoring.coreos.com"] + resources: + - podmonitors + - servicemonitors + - probes + verbs: + - get + - list + - watch + # Rules which allow eventhandler to work. + - apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch + # needed for remote.kubernetes.* + - apiGroups: [""] + resources: + - "configmaps" + - "secrets" + verbs: + - get + - list + - watch + # needed for otelcol.processor.k8sattributes + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: ["replicasets"] + verbs: ["get", "list", "watch"] +--- +# Source: k8s-monitoring/charts/alloy-profiles/templates/rbac.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: k8smon-alloy-profiles + labels: + helm.sh/chart: alloy-profiles-0.10.0 + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: rbac +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: k8smon-alloy-profiles +subjects: + - kind: ServiceAccount + name: k8smon-alloy-profiles + namespace: default +--- +# Source: k8s-monitoring/charts/alloy-profiles/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: k8smon-alloy-profiles + labels: + helm.sh/chart: alloy-profiles-0.10.0 + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy + app.kubernetes.io/component: networking +spec: + type: ClusterIP + selector: + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + internalTrafficPolicy: Cluster + ports: + - name: http-metrics + port: 12345 + targetPort: 12345 + protocol: "TCP" +--- +# Source: k8s-monitoring/charts/alloy-profiles/templates/controllers/daemonset.yaml +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: k8smon-alloy-profiles + labels: + helm.sh/chart: alloy-profiles-0.10.0 + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + + app.kubernetes.io/version: "v1.5.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: alloy +spec: + minReadySeconds: 10 + selector: + matchLabels: + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: alloy + labels: + app.kubernetes.io/name: alloy-profiles + app.kubernetes.io/instance: k8smon + spec: + serviceAccountName: k8smon-alloy-profiles + containers: + - name: alloy + image: docker.io/grafana/alloy:v1.5.0 + imagePullPolicy: IfNotPresent + args: + - run + - /etc/alloy/config.alloy + - --storage.path=/tmp/alloy + - --server.http.listen-addr=0.0.0.0:12345 + - --server.http.ui-path-prefix=/ + - --stability.level=public-preview + env: + - name: ALLOY_DEPLOY_MODE + value: "helm" + - name: HOSTNAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + ports: + - containerPort: 12345 + name: http-metrics + readinessProbe: + httpGet: + path: /-/ready + port: 12345 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + securityContext: + privileged: true + runAsGroup: 0 + runAsUser: 0 + volumeMounts: + - name: config + mountPath: /etc/alloy + - name: config-reloader + image: ghcr.io/jimmidyson/configmap-reload:v0.12.0 + args: + - --volume-dir=/etc/alloy + - --webhook-url=http://localhost:12345/-/reload + volumeMounts: + - name: config + mountPath: /etc/alloy + resources: + requests: + cpu: 1m + memory: 5Mi + hostPID: true + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/os: linux + tolerations: + - effect: NoSchedule + operator: Exists + volumes: + - name: config + configMap: + name: k8smon-alloy-profiles