Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
807 changes: 745 additions & 62 deletions apps/ingest/Cargo.lock

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions apps/ingest/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,22 @@ tower-http = { version = "0.6", features = ["cors"] }
url = "2.5.7"
uuid = { version = "1", features = ["v4"] }
moka = { version = "0.12", features = ["future"] }
# Local (`maple start`) only. Optional so the production ingest build never
# pulls libchdb (~319 MB) or the CLI/asset-embed deps.
chdb-rust = { version = "1.3.1", optional = true }
clap = { version = "4", features = ["derive"], optional = true }
rust-embed = { version = "8", optional = true }
mime_guess = { version = "2", optional = true }

[features]
# Gates the standalone `maple` binary (embedded chDB + bundled SPA). Build with
# `cargo build --release --features local --bin maple`.
local = ["dep:chdb-rust", "dep:clap", "dep:rust-embed", "dep:mime_guess"]

[[bin]]
name = "maple"
path = "src/bin/local.rs"
required-features = ["local"]

[dev-dependencies]
criterion = { version = "0.5", features = ["async_tokio"] }
Expand Down
344 changes: 344 additions & 0 deletions apps/ingest/schema/local-inserts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,344 @@
{
"projectRevision": "db2debb5006e36794755071a9e6a62a71b358dfd97b89de0e1da515209d53880",
"orgPlaceholder": "__ORG__",
"datasources": {
"traces": {
"table": "traces",
"columns": [
"OrgId",
"Timestamp",
"TraceId",
"SpanId",
"ParentSpanId",
"TraceState",
"SpanName",
"SpanKind",
"ServiceName",
"ResourceSchemaUrl",
"ResourceAttributes",
"ScopeSchemaUrl",
"ScopeName",
"ScopeVersion",
"ScopeAttributes",
"Duration",
"StatusCode",
"StatusMessage",
"SpanAttributes",
"EventsTimestamp",
"EventsName",
"EventsAttributes",
"LinksTraceId",
"LinksSpanId",
"LinksTraceState",
"LinksAttributes"
],
"selects": [
"__ORG__",
"start_time",
"trace_id",
"span_id",
"parent_span_id",
"trace_state",
"span_name",
"span_kind",
"service_name",
"resource_schema_url",
"resource_attributes",
"scope_schema_url",
"scope_name",
"scope_version",
"scope_attributes",
"duration",
"status_code",
"status_message",
"span_attributes",
"events_timestamp",
"events_name",
"events_attributes",
"links_trace_id",
"links_span_id",
"links_trace_state",
"links_attributes"
],
"inputSchema": "start_time DateTime64(9), trace_id String, span_id String, parent_span_id String, trace_state String, span_name LowCardinality(String), span_kind LowCardinality(String), service_name LowCardinality(String), resource_schema_url String, resource_attributes Map(LowCardinality(String), String), scope_schema_url String, scope_name String, scope_version String, scope_attributes Map(LowCardinality(String), String), duration UInt64, status_code LowCardinality(String), status_message String, span_attributes Map(LowCardinality(String), String), events_timestamp Array(DateTime64(9)), events_name Array(LowCardinality(String)), events_attributes Array(Map(LowCardinality(String), String)), links_trace_id Array(String), links_span_id Array(String), links_trace_state Array(String), links_attributes Array(Map(LowCardinality(String), String))"
},
"logs": {
"table": "logs",
"columns": [
"OrgId",
"Timestamp",
"TimestampTime",
"TraceId",
"SpanId",
"TraceFlags",
"SeverityText",
"SeverityNumber",
"ServiceName",
"Body",
"ResourceSchemaUrl",
"ResourceAttributes",
"ScopeSchemaUrl",
"ScopeName",
"ScopeVersion",
"ScopeAttributes",
"LogAttributes"
],
"selects": [
"__ORG__",
"timestamp",
"timestamp",
"trace_id",
"span_id",
"flags",
"severity_text",
"severity_number",
"service_name",
"body",
"resource_schema_url",
"resource_attributes",
"scope_schema_url",
"scope_name",
"scope_version",
"scope_attributes",
"log_attributes"
],
"inputSchema": "timestamp DateTime64(9), trace_id String, span_id String, flags UInt8, severity_text LowCardinality(String), severity_number UInt8, service_name LowCardinality(String), body String, resource_schema_url String, resource_attributes Map(LowCardinality(String), String), scope_schema_url String, scope_name String, scope_version String, scope_attributes Map(LowCardinality(String), String), log_attributes Map(LowCardinality(String), String)"
},
"metrics_sum": {
"table": "metrics_sum",
"columns": [
"OrgId",
"ResourceAttributes",
"ResourceSchemaUrl",
"ScopeName",
"ScopeVersion",
"ScopeAttributes",
"ScopeSchemaUrl",
"ServiceName",
"MetricName",
"MetricDescription",
"MetricUnit",
"Attributes",
"StartTimeUnix",
"TimeUnix",
"Value",
"Flags",
"ExemplarsTraceId",
"ExemplarsSpanId",
"ExemplarsTimestamp",
"ExemplarsValue",
"ExemplarsFilteredAttributes",
"AggregationTemporality",
"IsMonotonic"
],
"selects": [
"__ORG__",
"resource_attributes",
"resource_schema_url",
"scope_name",
"scope_version",
"scope_attributes",
"scope_schema_url",
"service_name",
"metric_name",
"metric_description",
"metric_unit",
"metric_attributes",
"start_timestamp",
"timestamp",
"value",
"flags",
"exemplars_trace_id",
"exemplars_span_id",
"exemplars_timestamp",
"exemplars_value",
"exemplars_filtered_attributes",
"aggregation_temporality",
"is_monotonic"
],
"inputSchema": "resource_attributes Map(LowCardinality(String), String), resource_schema_url String, scope_name String, scope_version String, scope_attributes Map(LowCardinality(String), String), scope_schema_url String, service_name LowCardinality(String), metric_name LowCardinality(String), metric_description LowCardinality(String), metric_unit LowCardinality(String), metric_attributes Map(LowCardinality(String), String), start_timestamp DateTime64(9), timestamp DateTime64(9), value Float64, flags UInt32, exemplars_trace_id Array(String), exemplars_span_id Array(String), exemplars_timestamp Array(DateTime64(9)), exemplars_value Array(Float64), exemplars_filtered_attributes Array(Map(LowCardinality(String), String)), aggregation_temporality Int32, is_monotonic Bool"
},
"metrics_gauge": {
"table": "metrics_gauge",
"columns": [
"OrgId",
"ResourceAttributes",
"ResourceSchemaUrl",
"ScopeName",
"ScopeVersion",
"ScopeAttributes",
"ScopeSchemaUrl",
"ServiceName",
"MetricName",
"MetricDescription",
"MetricUnit",
"Attributes",
"StartTimeUnix",
"TimeUnix",
"Value",
"Flags",
"ExemplarsTraceId",
"ExemplarsSpanId",
"ExemplarsTimestamp",
"ExemplarsValue",
"ExemplarsFilteredAttributes"
],
"selects": [
"__ORG__",
"resource_attributes",
"resource_schema_url",
"scope_name",
"scope_version",
"scope_attributes",
"scope_schema_url",
"service_name",
"metric_name",
"metric_description",
"metric_unit",
"metric_attributes",
"start_timestamp",
"timestamp",
"value",
"flags",
"exemplars_trace_id",
"exemplars_span_id",
"exemplars_timestamp",
"exemplars_value",
"exemplars_filtered_attributes"
],
"inputSchema": "resource_attributes Map(LowCardinality(String), String), resource_schema_url String, scope_name String, scope_version String, scope_attributes Map(LowCardinality(String), String), scope_schema_url String, service_name LowCardinality(String), metric_name LowCardinality(String), metric_description LowCardinality(String), metric_unit LowCardinality(String), metric_attributes Map(LowCardinality(String), String), start_timestamp DateTime64(9), timestamp DateTime64(9), value Float64, flags UInt32, exemplars_trace_id Array(String), exemplars_span_id Array(String), exemplars_timestamp Array(DateTime64(9)), exemplars_value Array(Float64), exemplars_filtered_attributes Array(Map(LowCardinality(String), String))"
},
"metrics_histogram": {
"table": "metrics_histogram",
"columns": [
"OrgId",
"ResourceAttributes",
"ResourceSchemaUrl",
"ScopeName",
"ScopeVersion",
"ScopeAttributes",
"ScopeSchemaUrl",
"ServiceName",
"MetricName",
"MetricDescription",
"MetricUnit",
"Attributes",
"StartTimeUnix",
"TimeUnix",
"Count",
"Sum",
"BucketCounts",
"ExplicitBounds",
"ExemplarsTraceId",
"ExemplarsSpanId",
"ExemplarsTimestamp",
"ExemplarsValue",
"ExemplarsFilteredAttributes",
"Flags",
"Min",
"Max",
"AggregationTemporality"
],
"selects": [
"__ORG__",
"resource_attributes",
"resource_schema_url",
"scope_name",
"scope_version",
"scope_attributes",
"scope_schema_url",
"service_name",
"metric_name",
"metric_description",
"metric_unit",
"metric_attributes",
"start_timestamp",
"timestamp",
"count",
"sum",
"bucket_counts",
"explicit_bounds",
"exemplars_trace_id",
"exemplars_span_id",
"exemplars_timestamp",
"exemplars_value",
"exemplars_filtered_attributes",
"flags",
"min",
"max",
"aggregation_temporality"
],
"inputSchema": "resource_attributes Map(LowCardinality(String), String), resource_schema_url String, scope_name String, scope_version String, scope_attributes Map(LowCardinality(String), String), scope_schema_url String, service_name LowCardinality(String), metric_name LowCardinality(String), metric_description LowCardinality(String), metric_unit LowCardinality(String), metric_attributes Map(LowCardinality(String), String), start_timestamp DateTime64(9), timestamp DateTime64(9), count UInt64, sum Float64, bucket_counts Array(UInt64), explicit_bounds Array(Float64), exemplars_trace_id Array(String), exemplars_span_id Array(String), exemplars_timestamp Array(DateTime64(9)), exemplars_value Array(Float64), exemplars_filtered_attributes Array(Map(LowCardinality(String), String)), flags UInt32, min Nullable(Float64), max Nullable(Float64), aggregation_temporality Int32"
},
"metrics_exponential_histogram": {
"table": "metrics_exponential_histogram",
"columns": [
"OrgId",
"ResourceAttributes",
"ResourceSchemaUrl",
"ScopeName",
"ScopeVersion",
"ScopeAttributes",
"ScopeSchemaUrl",
"ServiceName",
"MetricName",
"MetricDescription",
"MetricUnit",
"Attributes",
"StartTimeUnix",
"TimeUnix",
"Count",
"Sum",
"Scale",
"ZeroCount",
"PositiveOffset",
"PositiveBucketCounts",
"NegativeOffset",
"NegativeBucketCounts",
"ExemplarsTraceId",
"ExemplarsSpanId",
"ExemplarsTimestamp",
"ExemplarsValue",
"ExemplarsFilteredAttributes",
"Flags",
"Min",
"Max",
"AggregationTemporality"
],
"selects": [
"__ORG__",
"resource_attributes",
"resource_schema_url",
"scope_name",
"scope_version",
"scope_attributes",
"scope_schema_url",
"service_name",
"metric_name",
"metric_description",
"metric_unit",
"metric_attributes",
"start_timestamp",
"timestamp",
"count",
"sum",
"scale",
"zero_count",
"positive_offset",
"positive_bucket_counts",
"negative_offset",
"negative_bucket_counts",
"exemplars_trace_id",
"exemplars_span_id",
"exemplars_timestamp",
"exemplars_value",
"exemplars_filtered_attributes",
"flags",
"min",
"max",
"aggregation_temporality"
],
"inputSchema": "resource_attributes Map(LowCardinality(String), String), resource_schema_url String, scope_name String, scope_version String, scope_attributes Map(LowCardinality(String), String), scope_schema_url String, service_name LowCardinality(String), metric_name LowCardinality(String), metric_description LowCardinality(String), metric_unit LowCardinality(String), metric_attributes Map(LowCardinality(String), String), start_timestamp DateTime64(9), timestamp DateTime64(9), count UInt64, sum Float64, scale Int32, zero_count UInt64, positive_offset Int32, positive_bucket_counts Array(UInt64), negative_offset Int32, negative_bucket_counts Array(UInt64), exemplars_trace_id Array(String), exemplars_span_id Array(String), exemplars_timestamp Array(DateTime64(9)), exemplars_value Array(Float64), exemplars_filtered_attributes Array(Map(LowCardinality(String), String)), flags UInt32, min Nullable(Float64), max Nullable(Float64), aggregation_temporality Int32"
}
}
}
Loading
Loading