Skip to content

Commit 688f6b8

Browse files
authored
ci: add telemetry source tracking for build environment identification (#18653)
Add DATABEND_TELEMETRY_SOURCE environment variable to distinguish different build sources in telemetry data: - pr-test: PR and development testing - production: Production binary releases - docker-release: Docker image builds - ci-main: Main branch CI builds This enables better telemetry data analysis by identifying the build context without affecting core functionality. - Add DATABEND_TELEMETRY_SOURCE support in build system - Update CI workflows to set appropriate source values - Include source in telemetry observability data - Upgrade telemetry schema version to 1.1
1 parent 3ec71ef commit 688f6b8

File tree

11 files changed

+20
-5
lines changed

11 files changed

+20
-5
lines changed

.github/workflows/cloud.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ jobs:
7070
DATABEND_ENTERPRISE_LICENSE_PUBLIC_KEY: ${{ secrets.DATABEND_ENTERPRISE_LICENSE_PUBLIC_KEY }}
7171
DATABEND_TELEMETRY_ENDPOINT: ${{ secrets.DATABEND_TELEMETRY_ENDPOINT}}
7272
DATABEND_TELEMETRY_API_KEY: ${{ secrets.DATABEND_TELEMETRY_API_KEY}}
73+
DATABEND_TELEMETRY_SOURCE: "pr-test"
7374
with:
7475
sha: ${{ needs.info.outputs.sha }}
7576
target: ${{ matrix.arch }}-unknown-linux-gnu

.github/workflows/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
runner_provider: aws
4848
runner_arch: ARM64
4949
license_type: enterprise
50+
telemetry_source: "ci-main"
5051

5152
# macos:
5253
# needs: linux

.github/workflows/merge_group.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ jobs:
5757
build_profile: ci
5858
runner_provider: aws
5959
license_type: enterprise
60+
telemetry_source: "pr-test"
6061

6162
ready:
6263
if: always()

.github/workflows/release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ jobs:
142142
DATABEND_ENTERPRISE_LICENSE_EMBEDDED: ${{ secrets.DATABEND_ENTERPRISE_LICENSE_RELEASE }}
143143
DATABEND_TELEMETRY_ENDPOINT: ${{ secrets.DATABEND_TELEMETRY_ENDPOINT}}
144144
DATABEND_TELEMETRY_API_KEY: ${{ secrets.DATABEND_TELEMETRY_API_KEY}}
145+
DATABEND_TELEMETRY_SOURCE: "production"
145146
with:
146147
sha: ${{ github.sha }}
147148
target: ${{ matrix.target }}
@@ -183,6 +184,7 @@ jobs:
183184
DATABEND_ENTERPRISE_LICENSE_EMBEDDED: ${{ secrets.DATABEND_ENTERPRISE_LICENSE_RELEASE }}
184185
DATABEND_TELEMETRY_ENDPOINT: ${{ secrets.DATABEND_TELEMETRY_ENDPOINT}}
185186
DATABEND_TELEMETRY_API_KEY: ${{ secrets.DATABEND_TELEMETRY_API_KEY}}
187+
DATABEND_TELEMETRY_SOURCE: "docker-release"
186188
with:
187189
sha: ${{ github.sha }}
188190
target: ${{ matrix.target }}

.github/workflows/reuse.linux.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ on:
2323
type: string
2424
required: true
2525
default: "trial"
26+
telemetry_source:
27+
description: "Telemetry source identifier"
28+
type: string
29+
required: false
30+
default: "pr-test"
2631

2732
env:
2833
BUILD_PROFILE: ${{ inputs.build_profile }}
@@ -83,6 +88,7 @@ jobs:
8388
DATABEND_ENTERPRISE_LICENSE_PUBLIC_KEY: ${{ secrets.DATABEND_ENTERPRISE_LICENSE_PUBLIC_KEY }}
8489
DATABEND_TELEMETRY_ENDPOINT: ${{ secrets.DATABEND_TELEMETRY_ENDPOINT}}
8590
DATABEND_TELEMETRY_API_KEY: ${{ secrets.DATABEND_TELEMETRY_API_KEY}}
91+
DATABEND_TELEMETRY_SOURCE: ${{ inputs.telemetry_source }}
8692
with:
8793
sha: ${{ github.sha }}
8894
target: ${{ needs.info.outputs.target }}

src/common/building/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ pub fn add_env_telemetry() {
124124
println!("cargo:rerun-if-env-changed=DATABEND_TELEMETRY_API_KEY");
125125
let api_key = env::var("DATABEND_TELEMETRY_API_KEY").unwrap_or_default();
126126
println!("cargo:rustc-env=DATABEND_TELEMETRY_API_KEY={api_key}");
127+
128+
println!("cargo:rerun-if-env-changed=DATABEND_TELEMETRY_SOURCE");
129+
let source = env::var("DATABEND_TELEMETRY_SOURCE").unwrap_or_default();
130+
println!("cargo:rustc-env=DATABEND_TELEMETRY_SOURCE={source}");
127131
}
128132

129133
pub fn add_env_commit_authors(repo: &Repository) {

src/common/version/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ pub const DATABEND_TELEMETRY_ENDPOINT: &str = env!("DATABEND_TELEMETRY_ENDPOINT"
4949

5050
pub const DATABEND_TELEMETRY_API_KEY: &str = env!("DATABEND_TELEMETRY_API_KEY");
5151

52+
pub const DATABEND_TELEMETRY_SOURCE: &str = env!("DATABEND_TELEMETRY_SOURCE");
53+
5254
pub static DATABEND_SEMVER: LazyLock<Version> = LazyLock::new(|| {
5355
let semver = DATABEND_GIT_SEMVER
5456
.strip_prefix('v')

src/query/service/src/clusters/cluster.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ use databend_common_settings::Settings;
5858
use databend_common_telemetry::report_node_telemetry;
5959
use databend_common_version::DATABEND_TELEMETRY_API_KEY;
6060
use databend_common_version::DATABEND_TELEMETRY_ENDPOINT;
61+
use databend_common_version::DATABEND_TELEMETRY_SOURCE;
6162
use databend_enterprise_resources_management::ResourcesManagement;
6263
use futures::future::select;
6364
use futures::future::Either;
@@ -832,7 +833,8 @@ impl ClusterDiscovery {
832833
.duration_since(std::time::UNIX_EPOCH)
833834
.map(|d| d.as_secs())
834835
.unwrap_or(0),
835-
"schema_version": "1.0"
836+
"source": DATABEND_TELEMETRY_SOURCE,
837+
"schema_version": "1.1"
836838
}
837839
});
838840

tests/nox/java_client/perpare.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ def main():
1515

1616

1717
def download_jdbc(version):
18-
1918
files = [f"databend-jdbc-{version}.jar", f"databend-jdbc-{version}-tests.jar"]
2019

2120
for filename in files:

tests/nox/noxfile.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
@nox.session
88
@nox.parametrize("driver_version", PYTHON_DRIVER)
99
def python_client(session, driver_version):
10-
1110
session.install("pytest")
1211
session.install(f"databend-driver=={driver_version}")
1312
session.run("pytest", "python_client")
@@ -19,7 +18,6 @@ def python_client(session, driver_version):
1918
@nox.session
2019
@nox.parametrize("driver_version", JDBC_DRIVER)
2120
def java_client(session, driver_version):
22-
2321
session.install("requests")
2422
session.run("python", "java_client/perpare.py", driver_version)
2523
run_jdbc_test(session, driver_version)

0 commit comments

Comments
 (0)