Skip to content

Commit 9c4252b

Browse files
craig[bot]Abhinav1299
andcommitted
Merge #155156
155156: build/tools: Add gen-cockroachdb-metrics tool to automate roachprod metric mappings r=Abhinav1299 a=Abhinav1299 This commit introduces `gen-cockroachdb-metrics` tool, which generates a mapping of CockroachDB metrics to Datadog-compatible names for roachprod clusters. The tool integrates with existing Bazel build configurations and autogenerates pkg/roachprod/opentelemetry/cockroachdb_metrics.go file used by OTel agent to map exported metrics of roachprod clusters. The automation tool generates metric mapping using three sources: - `docs/generated/metrics/metrics.yaml`: Containing all the metrics emitted by latest version of CRDB. - `runtime_conditional_metrics` from cockroachdb_metrics_base.yaml: Containing all the dynamically generated metrics which are not documented in metrics.yaml. - `legacy_metrics` from cockroachdb_metrics_base.yaml: Containing legacy metrics from older CRDB versions for backward compatibility. This change enhances the observability of CockroachDB metrics in Datadog, ensuring better monitoring and performance tracking. This commit resolves #148880 Part of: CRDB-54636 Epic: CC-33357 Release note: none Co-authored-by: Abhinav1299 <[email protected]>
2 parents e7ec6cd + 8fd1dd0 commit 9c4252b

File tree

11 files changed

+3979
-2197
lines changed

11 files changed

+3979
-2197
lines changed

WORKSPACE

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,16 @@ http_archive(
628628
],
629629
)
630630

631+
# Datadog metrics mapping file for CockroachDB OpenTelemetry integration
632+
http_archive(
633+
name = "datadog_cockroachdb_metrics",
634+
build_file_content = """exports_files(["metrics.py"])""",
635+
sha256 = "05f2a1c459ed247a031ce5f026b2098687657c8ab30214222261f2fe180ae2fc",
636+
urls = [
637+
"https://storage.googleapis.com/public-bazel-artifacts/bazel/metrics-f37c7837771cf0df7771d2017fd05d55eb521994.tar.gz",
638+
],
639+
)
640+
631641
# Cockroach binaries for use by mixed-version logictests.
632642
load("//pkg/sql/logictest:REPOSITORIES.bzl", "cockroach_binaries_for_testing")
633643

build/bazelutil/distdir_files.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,6 +1165,7 @@ DISTDIR_FILES = {
11651165
"https://storage.googleapis.com/public-bazel-artifacts/bazel/cockroachdb-rules_go-v0.27.0-646-gf43cb04.tar.gz": "490e811c644e3cfad4024be91617368a5344515488259c17dfb8ee426662ec25",
11661166
"https://storage.googleapis.com/public-bazel-artifacts/bazel/google-starlark-go-e043a3d.tar.gz": "a35c6468e0e0921833a63290161ff903295eaaf5915200bbce272cbc8dfd1c1c",
11671167
"https://storage.googleapis.com/public-bazel-artifacts/bazel/googleapis-83c3605afb5a39952bf0a0809875d41cf2a558ca.zip": "ba694861340e792fd31cb77274eacaf6e4ca8bda97707898f41d8bebfd8a4984",
1168+
"https://storage.googleapis.com/public-bazel-artifacts/bazel/metrics-f37c7837771cf0df7771d2017fd05d55eb521994.tar.gz": "05f2a1c459ed247a031ce5f026b2098687657c8ab30214222261f2fe180ae2fc",
11681169
"https://storage.googleapis.com/public-bazel-artifacts/bazel/platforms-0.0.10.tar.gz": "218efe8ee736d26a3572663b374a253c012b716d8af0c07e842e82f238a0a7ee",
11691170
"https://storage.googleapis.com/public-bazel-artifacts/bazel/rules_java-7.12.5.tar.gz": "17b18cb4f92ab7b94aa343ce78531b73960b1bed2ba166e5b02c9fdf0b0ac270",
11701171
"https://storage.googleapis.com/public-bazel-artifacts/bazel/rules_license-1.0.0.tar.gz": "26d4021f6898e23b82ef953078389dd49ac2b5618ac564ade4ef87cced147b38",
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
2+
3+
go_library(
4+
name = "gen-cockroachdb-metrics_lib",
5+
srcs = ["main.go"],
6+
importpath = "github.com/cockroachdb/cockroach/build/tools/gen-cockroachdb-metrics",
7+
visibility = ["//visibility:private"],
8+
deps = ["@in_gopkg_yaml_v2//:yaml_v2"],
9+
)
10+
11+
go_binary(
12+
name = "gen-cockroachdb-metrics",
13+
data = ["@datadog_cockroachdb_metrics//:metrics.py"],
14+
embed = [":gen-cockroachdb-metrics_lib"],
15+
visibility = ["//visibility:public"],
16+
)
17+
18+
go_test(
19+
name = "gen-cockroachdb-metrics_test",
20+
srcs = ["main_test.go"],
21+
data = ["@datadog_cockroachdb_metrics//:metrics.py"],
22+
embed = [":gen-cockroachdb-metrics_lib"],
23+
deps = [
24+
"@com_github_stretchr_testify//assert",
25+
"@com_github_stretchr_testify//require",
26+
],
27+
)

0 commit comments

Comments
 (0)