mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-04 12:22:55 +00:00
chore(otlp_metric): update metric and label naming (#6624)
* chore: update otlp metrics & labels naming Signed-off-by: shuiyisong <xixing.sys@gmail.com> * fix: typo and test Signed-off-by: shuiyisong <xixing.sys@gmail.com> * Update src/session/src/protocol_ctx.rs * chore: add test cases for normalizing functions Signed-off-by: shuiyisong <xixing.sys@gmail.com> --------- Signed-off-by: shuiyisong <xixing.sys@gmail.com> Co-authored-by: Ning Sun <classicning@gmail.com>
This commit is contained in:
@@ -69,7 +69,7 @@ mod test {
|
||||
|
||||
let mut output = instance
|
||||
.do_query(
|
||||
"SELECT * FROM my_test_metric ORDER BY greptime_timestamp",
|
||||
"SELECT * FROM my_test_metric_my_ignored_unit ORDER BY greptime_timestamp",
|
||||
ctx.clone(),
|
||||
)
|
||||
.await;
|
||||
@@ -91,7 +91,7 @@ mod test {
|
||||
|
||||
let mut output = instance
|
||||
.do_query(
|
||||
"SELECT le, greptime_value FROM my_test_histo_bucket order by le",
|
||||
"SELECT le, greptime_value FROM my_test_histo_my_ignored_unit_bucket order by le",
|
||||
ctx.clone(),
|
||||
)
|
||||
.await;
|
||||
@@ -113,7 +113,10 @@ mod test {
|
||||
);
|
||||
|
||||
let mut output = instance
|
||||
.do_query("SELECT * FROM my_test_histo_sum", ctx.clone())
|
||||
.do_query(
|
||||
"SELECT * FROM my_test_histo_my_ignored_unit_sum",
|
||||
ctx.clone(),
|
||||
)
|
||||
.await;
|
||||
let output = output.remove(0).unwrap();
|
||||
let OutputData::Stream(stream) = output.data else {
|
||||
@@ -131,7 +134,10 @@ mod test {
|
||||
);
|
||||
|
||||
let mut output = instance
|
||||
.do_query("SELECT * FROM my_test_histo_count", ctx.clone())
|
||||
.do_query(
|
||||
"SELECT * FROM my_test_histo_my_ignored_unit_count",
|
||||
ctx.clone(),
|
||||
)
|
||||
.await;
|
||||
let output = output.remove(0).unwrap();
|
||||
let OutputData::Stream(stream) = output.data else {
|
||||
|
||||
@@ -3636,10 +3636,10 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
.await;
|
||||
assert_eq!(StatusCode::OK, res.status());
|
||||
|
||||
let expected = "[[\"claude_code_cost_usage\"],[\"claude_code_token_usage\"],[\"demo\"],[\"greptime_physical_table\"],[\"numbers\"]]";
|
||||
let expected = "[[\"claude_code_cost_usage_USD_total\"],[\"claude_code_token_usage_tokens_total\"],[\"demo\"],[\"greptime_physical_table\"],[\"numbers\"]]";
|
||||
validate_data("otlp_metrics_all_tables", &client, "show tables;", expected).await;
|
||||
|
||||
// CREATE TABLE IF NOT EXISTS "claude_code_cost_usage" (
|
||||
// CREATE TABLE IF NOT EXISTS "claude_code_cost_usage_USD_total" (
|
||||
// "greptime_timestamp" TIMESTAMP(3) NOT NULL,
|
||||
// "greptime_value" DOUBLE NULL,
|
||||
// "host_arch" STRING NULL,
|
||||
@@ -3662,11 +3662,11 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
// on_physical_table = 'greptime_physical_table',
|
||||
// otlp_metric_compat = 'prom'
|
||||
// )
|
||||
let expected = "[[\"claude_code_cost_usage\",\"CREATE TABLE IF NOT EXISTS \\\"claude_code_cost_usage\\\" (\\n \\\"greptime_timestamp\\\" TIMESTAMP(3) NOT NULL,\\n \\\"greptime_value\\\" DOUBLE NULL,\\n \\\"host_arch\\\" STRING NULL,\\n \\\"job\\\" STRING NULL,\\n \\\"model\\\" STRING NULL,\\n \\\"os_version\\\" STRING NULL,\\n \\\"otel_scope_name\\\" STRING NULL,\\n \\\"otel_scope_schema_url\\\" STRING NULL,\\n \\\"otel_scope_version\\\" STRING NULL,\\n \\\"service_name\\\" STRING NULL,\\n \\\"service_version\\\" STRING NULL,\\n \\\"session_id\\\" STRING NULL,\\n \\\"terminal_type\\\" STRING NULL,\\n \\\"user_id\\\" STRING NULL,\\n TIME INDEX (\\\"greptime_timestamp\\\"),\\n PRIMARY KEY (\\\"host_arch\\\", \\\"job\\\", \\\"model\\\", \\\"os_version\\\", \\\"otel_scope_name\\\", \\\"otel_scope_schema_url\\\", \\\"otel_scope_version\\\", \\\"service_name\\\", \\\"service_version\\\", \\\"session_id\\\", \\\"terminal_type\\\", \\\"user_id\\\")\\n)\\n\\nENGINE=metric\\nWITH(\\n on_physical_table = 'greptime_physical_table',\\n otlp_metric_compat = 'prom'\\n)\"]]";
|
||||
let expected = "[[\"claude_code_cost_usage_USD_total\",\"CREATE TABLE IF NOT EXISTS \\\"claude_code_cost_usage_USD_total\\\" (\\n \\\"greptime_timestamp\\\" TIMESTAMP(3) NOT NULL,\\n \\\"greptime_value\\\" DOUBLE NULL,\\n \\\"host_arch\\\" STRING NULL,\\n \\\"job\\\" STRING NULL,\\n \\\"model\\\" STRING NULL,\\n \\\"os_version\\\" STRING NULL,\\n \\\"otel_scope_name\\\" STRING NULL,\\n \\\"otel_scope_schema_url\\\" STRING NULL,\\n \\\"otel_scope_version\\\" STRING NULL,\\n \\\"service_name\\\" STRING NULL,\\n \\\"service_version\\\" STRING NULL,\\n \\\"session_id\\\" STRING NULL,\\n \\\"terminal_type\\\" STRING NULL,\\n \\\"user_id\\\" STRING NULL,\\n TIME INDEX (\\\"greptime_timestamp\\\"),\\n PRIMARY KEY (\\\"host_arch\\\", \\\"job\\\", \\\"model\\\", \\\"os_version\\\", \\\"otel_scope_name\\\", \\\"otel_scope_schema_url\\\", \\\"otel_scope_version\\\", \\\"service_name\\\", \\\"service_version\\\", \\\"session_id\\\", \\\"terminal_type\\\", \\\"user_id\\\")\\n)\\n\\nENGINE=metric\\nWITH(\\n on_physical_table = 'greptime_physical_table',\\n otlp_metric_compat = 'prom'\\n)\"]]";
|
||||
validate_data(
|
||||
"otlp_metrics_all_show_create_table",
|
||||
&client,
|
||||
"show create table claude_code_cost_usage;",
|
||||
"show create table `claude_code_cost_usage_USD_total`;",
|
||||
expected,
|
||||
)
|
||||
.await;
|
||||
@@ -3676,19 +3676,19 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
validate_data(
|
||||
"otlp_metrics_all_select",
|
||||
&client,
|
||||
"select * from claude_code_cost_usage;",
|
||||
"select * from `claude_code_cost_usage_USD_total`;",
|
||||
expected,
|
||||
)
|
||||
.await;
|
||||
|
||||
// drop table
|
||||
let res = client
|
||||
.get("/v1/sql?sql=drop table claude_code_cost_usage;")
|
||||
.get("/v1/sql?sql=drop table `claude_code_cost_usage_USD_total`;")
|
||||
.send()
|
||||
.await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
let res = client
|
||||
.get("/v1/sql?sql=drop table claude_code_token_usage;")
|
||||
.get("/v1/sql?sql=drop table claude_code_token_usage_tokens_total;")
|
||||
.send()
|
||||
.await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
@@ -3714,7 +3714,7 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
.await;
|
||||
assert_eq!(StatusCode::OK, res.status());
|
||||
|
||||
// CREATE TABLE IF NOT EXISTS "claude_code_cost_usage" (
|
||||
// CREATE TABLE IF NOT EXISTS "claude_code_cost_usage_USD_total" (
|
||||
// "greptime_timestamp" TIMESTAMP(3) NOT NULL,
|
||||
// "greptime_value" DOUBLE NULL,
|
||||
// "job" STRING NULL,
|
||||
@@ -3734,11 +3734,11 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
// on_physical_table = 'greptime_physical_table',
|
||||
// otlp_metric_compat = 'prom'
|
||||
// )
|
||||
let expected = "[[\"claude_code_cost_usage\",\"CREATE TABLE IF NOT EXISTS \\\"claude_code_cost_usage\\\" (\\n \\\"greptime_timestamp\\\" TIMESTAMP(3) NOT NULL,\\n \\\"greptime_value\\\" DOUBLE NULL,\\n \\\"job\\\" STRING NULL,\\n \\\"model\\\" STRING NULL,\\n \\\"os_type\\\" STRING NULL,\\n \\\"os_version\\\" STRING NULL,\\n \\\"service_name\\\" STRING NULL,\\n \\\"service_version\\\" STRING NULL,\\n \\\"session_id\\\" STRING NULL,\\n \\\"terminal_type\\\" STRING NULL,\\n \\\"user_id\\\" STRING NULL,\\n TIME INDEX (\\\"greptime_timestamp\\\"),\\n PRIMARY KEY (\\\"job\\\", \\\"model\\\", \\\"os_type\\\", \\\"os_version\\\", \\\"service_name\\\", \\\"service_version\\\", \\\"session_id\\\", \\\"terminal_type\\\", \\\"user_id\\\")\\n)\\n\\nENGINE=metric\\nWITH(\\n on_physical_table = 'greptime_physical_table',\\n otlp_metric_compat = 'prom'\\n)\"]]";
|
||||
let expected = "[[\"claude_code_cost_usage_USD_total\",\"CREATE TABLE IF NOT EXISTS \\\"claude_code_cost_usage_USD_total\\\" (\\n \\\"greptime_timestamp\\\" TIMESTAMP(3) NOT NULL,\\n \\\"greptime_value\\\" DOUBLE NULL,\\n \\\"job\\\" STRING NULL,\\n \\\"model\\\" STRING NULL,\\n \\\"os_type\\\" STRING NULL,\\n \\\"os_version\\\" STRING NULL,\\n \\\"service_name\\\" STRING NULL,\\n \\\"service_version\\\" STRING NULL,\\n \\\"session_id\\\" STRING NULL,\\n \\\"terminal_type\\\" STRING NULL,\\n \\\"user_id\\\" STRING NULL,\\n TIME INDEX (\\\"greptime_timestamp\\\"),\\n PRIMARY KEY (\\\"job\\\", \\\"model\\\", \\\"os_type\\\", \\\"os_version\\\", \\\"service_name\\\", \\\"service_version\\\", \\\"session_id\\\", \\\"terminal_type\\\", \\\"user_id\\\")\\n)\\n\\nENGINE=metric\\nWITH(\\n on_physical_table = 'greptime_physical_table',\\n otlp_metric_compat = 'prom'\\n)\"]]";
|
||||
validate_data(
|
||||
"otlp_metrics_show_create_table",
|
||||
&client,
|
||||
"show create table claude_code_cost_usage;",
|
||||
"show create table `claude_code_cost_usage_USD_total`;",
|
||||
expected,
|
||||
)
|
||||
.await;
|
||||
@@ -3748,19 +3748,19 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
validate_data(
|
||||
"otlp_metrics_select",
|
||||
&client,
|
||||
"select * from claude_code_cost_usage;",
|
||||
"select * from `claude_code_cost_usage_USD_total`;",
|
||||
expected,
|
||||
)
|
||||
.await;
|
||||
|
||||
// drop table
|
||||
let res = client
|
||||
.get("/v1/sql?sql=drop table claude_code_cost_usage;")
|
||||
.get("/v1/sql?sql=drop table `claude_code_cost_usage_USD_total`;")
|
||||
.send()
|
||||
.await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
let res = client
|
||||
.get("/v1/sql?sql=drop table claude_code_token_usage;")
|
||||
.get("/v1/sql?sql=drop table claude_code_token_usage_tokens_total;")
|
||||
.send()
|
||||
.await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
@@ -3779,7 +3779,7 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
.await;
|
||||
assert_eq!(StatusCode::OK, res.status());
|
||||
|
||||
// CREATE TABLE IF NOT EXISTS "claude_code_cost_usage" (
|
||||
// CREATE TABLE IF NOT EXISTS "claude_code_cost_usage_USD_total" (
|
||||
// "greptime_timestamp" TIMESTAMP(3) NOT NULL,
|
||||
// "greptime_value" DOUBLE NULL,
|
||||
// "job" STRING NULL,
|
||||
@@ -3797,11 +3797,11 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
// on_physical_table = 'greptime_physical_table',
|
||||
// otlp_metric_compat = 'prom'
|
||||
// )
|
||||
let expected = "[[\"claude_code_cost_usage\",\"CREATE TABLE IF NOT EXISTS \\\"claude_code_cost_usage\\\" (\\n \\\"greptime_timestamp\\\" TIMESTAMP(3) NOT NULL,\\n \\\"greptime_value\\\" DOUBLE NULL,\\n \\\"job\\\" STRING NULL,\\n \\\"model\\\" STRING NULL,\\n \\\"service_name\\\" STRING NULL,\\n \\\"service_version\\\" STRING NULL,\\n \\\"session_id\\\" STRING NULL,\\n \\\"terminal_type\\\" STRING NULL,\\n \\\"user_id\\\" STRING NULL,\\n TIME INDEX (\\\"greptime_timestamp\\\"),\\n PRIMARY KEY (\\\"job\\\", \\\"model\\\", \\\"service_name\\\", \\\"service_version\\\", \\\"session_id\\\", \\\"terminal_type\\\", \\\"user_id\\\")\\n)\\n\\nENGINE=metric\\nWITH(\\n on_physical_table = 'greptime_physical_table',\\n otlp_metric_compat = 'prom'\\n)\"]]";
|
||||
let expected = "[[\"claude_code_cost_usage_USD_total\",\"CREATE TABLE IF NOT EXISTS \\\"claude_code_cost_usage_USD_total\\\" (\\n \\\"greptime_timestamp\\\" TIMESTAMP(3) NOT NULL,\\n \\\"greptime_value\\\" DOUBLE NULL,\\n \\\"job\\\" STRING NULL,\\n \\\"model\\\" STRING NULL,\\n \\\"service_name\\\" STRING NULL,\\n \\\"service_version\\\" STRING NULL,\\n \\\"session_id\\\" STRING NULL,\\n \\\"terminal_type\\\" STRING NULL,\\n \\\"user_id\\\" STRING NULL,\\n TIME INDEX (\\\"greptime_timestamp\\\"),\\n PRIMARY KEY (\\\"job\\\", \\\"model\\\", \\\"service_name\\\", \\\"service_version\\\", \\\"session_id\\\", \\\"terminal_type\\\", \\\"user_id\\\")\\n)\\n\\nENGINE=metric\\nWITH(\\n on_physical_table = 'greptime_physical_table',\\n otlp_metric_compat = 'prom'\\n)\"]]";
|
||||
validate_data(
|
||||
"otlp_metrics_show_create_table_none",
|
||||
&client,
|
||||
"show create table claude_code_cost_usage;",
|
||||
"show create table `claude_code_cost_usage_USD_total`;",
|
||||
expected,
|
||||
)
|
||||
.await;
|
||||
@@ -3811,19 +3811,19 @@ pub async fn test_otlp_metrics_new(store_type: StorageType) {
|
||||
validate_data(
|
||||
"otlp_metrics_select_none",
|
||||
&client,
|
||||
"select * from claude_code_cost_usage;",
|
||||
"select * from `claude_code_cost_usage_USD_total`;",
|
||||
expected,
|
||||
)
|
||||
.await;
|
||||
|
||||
// drop table
|
||||
let res = client
|
||||
.get("/v1/sql?sql=drop table claude_code_cost_usage;")
|
||||
.get("/v1/sql?sql=drop table `claude_code_cost_usage_USD_total`;")
|
||||
.send()
|
||||
.await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
let res = client
|
||||
.get("/v1/sql?sql=drop table claude_code_token_usage;")
|
||||
.get("/v1/sql?sql=drop table claude_code_token_usage_tokens_total;")
|
||||
.send()
|
||||
.await;
|
||||
assert_eq!(res.status(), StatusCode::OK);
|
||||
|
||||
Reference in New Issue
Block a user