diff --git a/charts/kompass/.helmignore b/charts/kompass/.helmignore index 0e8a0eb3..bf2eb02c 100644 --- a/charts/kompass/.helmignore +++ b/charts/kompass/.helmignore @@ -21,3 +21,11 @@ .idea/ *.tmproj .vscode/ + +# Large generated files and logs +all.yaml +tmpl +helm_install.log +install_debug.log +crds.yaml + diff --git a/charts/kompass/templates/dependencies/vm-configs.yaml b/charts/kompass/templates/dependencies/vm-configs.yaml index e86c3186..40a3a0ee 100644 --- a/charts/kompass/templates/dependencies/vm-configs.yaml +++ b/charts/kompass/templates/dependencies/vm-configs.yaml @@ -119,6 +119,130 @@ data: action: keep {{- end }} + # Java metrics + - job_name: 'java-runner-pods' + scrape_interval: {{ include "kompass.scrapeInterval" . }} + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_java_runner] + action: keep + regex: "true" + - source_labels: [__meta_kubernetes_pod_ip] + target_label: __address__ + replacement: $1:9404 + - source_labels: [__meta_kubernetes_namespace] + target_label: namespace + - source_labels: [__meta_kubernetes_pod_name] + target_label: pod + - source_labels: [__meta_kubernetes_pod_container_name] + target_label: container + + # Java metrics normalized to unified JVM contract + - job_name: 'java-runner-pods-unified' + scrape_interval: {{ include "kompass.scrapeInterval" . }} + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_java_runner] + action: keep + regex: "true" + - source_labels: [__meta_kubernetes_pod_ip] + target_label: __address__ + replacement: $1:9404 + - source_labels: [__meta_kubernetes_namespace] + target_label: namespace + - source_labels: [__meta_kubernetes_pod_name] + target_label: pod + - source_labels: [__meta_kubernetes_pod_container_name] + target_label: container + metric_relabel_configs: + - source_labels: [__name__, name] + regex: '(java_lang_garbagecollector_collectiontime|java_lang_garbagecollector_collectioncount|java_lang_GarbageCollector_CollectionTime|java_lang_GarbageCollector_CollectionCount);(.+)' + target_label: gc + replacement: $2 + - source_labels: [__name__] + regex: '(java_lang_garbagecollector_collectiontime|java_lang_GarbageCollector_CollectionTime)' + target_label: __name__ + replacement: 'jvm_gc_collection_seconds_sum' + - source_labels: [__name__] + regex: '(java_lang_garbagecollector_collectioncount|java_lang_GarbageCollector_CollectionCount)' + target_label: __name__ + replacement: 'jvm_gc_collection_seconds_count' + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);G1 Concurrent GC' + action: drop + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);.+' + target_label: gc_generation + replacement: 'unknown' + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);(G1 Young Generation|Copy)' + target_label: gc_generation + replacement: 'young' + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);(G1 Old Generation|MarkSweepCompact)' + target_label: gc_generation + replacement: 'old' + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);.+' + target_label: gc_collector_family + replacement: 'unknown' + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);(G1 Young Generation|G1 Old Generation)' + target_label: gc_collector_family + replacement: 'g1' + - source_labels: [__name__, gc] + regex: 'jvm_gc_collection_seconds_(sum|count);(Copy|MarkSweepCompact)' + target_label: gc_collector_family + replacement: 'serial' + + - source_labels: [__name__] + regex: '(java_lang_memory_heapmemoryusage_used|java_lang_Memory_HeapMemoryUsage_used)' + target_label: __name__ + replacement: 'jvm_memory_bytes_used' + - source_labels: [__name__] + regex: '(java_lang_memory_heapmemoryusage_max|java_lang_Memory_HeapMemoryUsage_max)' + target_label: __name__ + replacement: 'jvm_memory_bytes_max' + - source_labels: [__name__] + regex: '(jvm_memory_bytes_used|jvm_memory_bytes_max)' + target_label: area + replacement: 'heap' + + - source_labels: [__name__, name] + regex: '(java_lang_memorypool_collectionusage_used|java_lang_memorypool_usage_max|java_lang_MemoryPool_CollectionUsage_used|java_lang_MemoryPool_Usage_max);(.+)' + target_label: pool + replacement: $2 + - source_labels: [__name__] + regex: '(java_lang_memorypool_collectionusage_used|java_lang_MemoryPool_CollectionUsage_used)' + target_label: __name__ + replacement: 'jvm_memory_pool_collection_used_bytes' + - source_labels: [__name__] + regex: '(java_lang_memorypool_usage_max|java_lang_MemoryPool_Usage_max)' + target_label: __name__ + replacement: 'jvm_memory_pool_collection_max_bytes' + - source_labels: [__name__, pool] + regex: 'jvm_memory_pool_collection_(used|max)_bytes;.+' + target_label: pool_generation + replacement: 'unknown' + - source_labels: [__name__, pool] + regex: 'jvm_memory_pool_collection_(used|max)_bytes;(G1 Eden Space|Eden Space)' + target_label: pool_generation + replacement: 'eden' + - source_labels: [__name__, pool] + regex: 'jvm_memory_pool_collection_(used|max)_bytes;(G1 Survivor Space|Survivor Space)' + target_label: pool_generation + replacement: 'survivor' + - source_labels: [__name__, pool] + regex: 'jvm_memory_pool_collection_(used|max)_bytes;(G1 Old Gen|Tenured Gen)' + target_label: pool_generation + replacement: 'old' + + - source_labels: [__name__] + regex: '(jvm_gc_collection_seconds_sum|jvm_gc_collection_seconds_count|jvm_memory_bytes_used|jvm_memory_bytes_max|jvm_memory_pool_collection_used_bytes|jvm_memory_pool_collection_max_bytes|process_cpu_seconds_total)' + action: keep + {{- if .Values.victoriaMetrics.enabled }} # for collecting VM metrics - job_name: 'vmetrics'