Skip to content

Commit

Permalink
docs(clickhouseexporter): add examples of missing DDL tables (#35903)
Browse files Browse the repository at this point in the history
#### Description
Add Missing Examples Of DDL For Clickhouse Exporter

#### Testing
N/A

#### Documentation
Added two files with the example DDL of two tables:
`otel_metrics_exponential_histogram`
and `otel_metrics_gauge`. 

These were not in the examples but they are indeed created by the
exporter. This was
confusing as we do manage our own schema. The docs had incomplete
examples. See
https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/clickhouseexporter#schema-management

---------

Co-authored-by: Antoine Toulme <[email protected]>
Co-authored-by: Antoine Toulme <[email protected]>
Co-authored-by: Yang Song <[email protected]>
  • Loading branch information
4 people authored Jan 24, 2025
1 parent 23f6622 commit 705cac3
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 0 deletions.
27 changes: 27 additions & 0 deletions .chloggen/clickhouse_examples.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Use this changelog template to create an entry for release notes.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
component: exporter/clickhouse

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Adding missing examples of DDL created by the clickhouse exporter

# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
issues: [35903]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:

# If your change doesn't affect end users or the exported elements of any package,
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
CREATE TABLE IF NOT EXISTS otel_metrics_exponential_histogram
(
ResourceAttributes Map(LowCardinality(String), String) CODEC (ZSTD(1)),
ResourceSchemaUrl String CODEC (ZSTD(1)),
ScopeName String CODEC (ZSTD(1)),
ScopeVersion String CODEC (ZSTD(1)),
ScopeAttributes Map(LowCardinality(String), String) CODEC (ZSTD(1)),
ScopeDroppedAttrCount UInt32 CODEC (ZSTD(1)),
ScopeSchemaUrl String CODEC (ZSTD(1)),
ServiceName LowCardinality(String) CODEC (ZSTD(1)),
MetricName String CODEC (ZSTD(1)),
MetricDescription String CODEC (ZSTD(1)),
MetricUnit String CODEC (ZSTD(1)),
Attributes Map(LowCardinality(String), String) CODEC (ZSTD(1)),
StartTimeUnix DateTime64(9) CODEC (Delta, ZSTD(1)),
TimeUnix DateTime64(9) CODEC (Delta, ZSTD(1)),
Count UInt64 CODEC (Delta, ZSTD(1)),
Sum Float64 CODEC (ZSTD(1)),
Scale Int32 CODEC (ZSTD(1)),
ZeroCount UInt64 CODEC (ZSTD(1)),
PositiveOffset Int32 CODEC (ZSTD(1)),
PositiveBucketCounts Array(UInt64) CODEC (ZSTD(1)),
NegativeOffset Int32 CODEC (ZSTD(1)),
NegativeBucketCounts Array(UInt64) CODEC (ZSTD(1)),
Exemplars Nested(FilteredAttributes Map(LowCardinality(String), String),
TimeUnix DateTime64(9),
Value Float64,
SpanId String,
TraceId String) CODEC (ZSTD(1)),
Flags UInt32 CODEC (ZSTD(1)),
Min Float64 CODEC (ZSTD(1)),
Max Float64 CODEC (ZSTD(1)),
AggregationTemporality Int32 CODEC (ZSTD(1)),
INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
) ENGINE = MergeTree
TTL toDateTime(TimeUnix) + toIntervalDay(180)
PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
SETTINGS index_granularity = 8192, ttl_only_drop_parts = 1;
34 changes: 34 additions & 0 deletions exporter/clickhouseexporter/example/default_ddl/metrics_gauge.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
CREATE TABLE IF NOT EXISTS otel_metrics_gauge
(
ResourceAttributes Map(LowCardinality(String), String) CODEC (ZSTD(1)),
ResourceSchemaUrl String CODEC (ZSTD(1)),
ScopeName String CODEC (ZSTD(1)),
ScopeVersion String CODEC (ZSTD(1)),
ScopeAttributes Map(LowCardinality(String), String) CODEC (ZSTD(1)),
ScopeDroppedAttrCount UInt32 CODEC (ZSTD(1)),
ScopeSchemaUrl String CODEC (ZSTD(1)),
ServiceName LowCardinality(String) CODEC (ZSTD(1)),
MetricName String CODEC (ZSTD(1)),
MetricDescription String CODEC (ZSTD(1)),
MetricUnit String CODEC (ZSTD(1)),
Attributes Map(LowCardinality(String), String) CODEC (ZSTD(1)),
StartTimeUnix DateTime64(9) CODEC (Delta, ZSTD(1)),
TimeUnix DateTime64(9) CODEC (Delta, ZSTD(1)),
Value Float64 CODEC (ZSTD(1)),
Flags UInt32 CODEC (ZSTD(1)),
Exemplars Nested(FilteredAttributes Map(LowCardinality(String), String),
TimeUnix DateTime64(9),
Value Float64,
SpanId String,
TraceId String) CODEC (ZSTD(1)),
INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
) ENGINE = MergeTree
PARTITION BY toDate(TimeUnix)
ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
TTL toDateTime(TimeUnix) + toIntervalDay(180)
SETTINGS index_granularity = 8192, ttl_only_drop_parts = 1;

0 comments on commit 705cac3

Please sign in to comment.