This message was deleted.
s
This message was deleted.
n
cc @Samuel Bacaner
πŸ‘€ 1
In an effort to confirm my hypothesis, I logged in to the ClickHouse instance and inspected the
signoz_logs.logs_attribute_keys
table:
Copy code
SELECT *
FROM signoz_logs.logs_attribute_keys
Copy code
β”Œβ”€name──────────┬─datatype─┐
β”‚ log_file_path β”‚ String   β”‚
β”‚ log_iostream  β”‚ String   β”‚
β”‚ logtag        β”‚ String   β”‚
β”‚ time          β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€name──────────┬─datatype─┐
β”‚ log_file_path β”‚ String   β”‚
β”‚ log_iostream  β”‚ String   β”‚
β”‚ logtag        β”‚ String   β”‚
β”‚ time          β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€name──────────────────┬─datatype─┐
β”‚ attributes            β”‚ String   β”‚
β”‚ body                  β”‚ String   β”‚
β”‚ chunker_config        β”‚ String   β”‚
β”‚ data                  β”‚ String   β”‚
β”‚ distance_metric       β”‚ String   β”‚
β”‚ dropped_attributes    β”‚ Float64  β”‚
β”‚ embedding_digest      β”‚ String   β”‚
β”‚ embedding_size        β”‚ Float64  β”‚
β”‚ exception_message     β”‚ String   β”‚
β”‚ exception_stacktrace  β”‚ String   β”‚
β”‚ exception_type        β”‚ String   β”‚
β”‚ func                  β”‚ String   β”‚
β”‚ log_file_path         β”‚ String   β”‚
β”‚ log_iostream          β”‚ String   β”‚
β”‚ logtag                β”‚ String   β”‚
β”‚ max_batch_size        β”‚ Float64  β”‚
β”‚ max_input_char_length β”‚ Float64  β”‚
β”‚ object                β”‚ String   β”‚
β”‚ otelServiceName       β”‚ String   β”‚
β”‚ otelSpanID            β”‚ String   β”‚
β”‚ otelTraceID           β”‚ String   β”‚
β”‚ otelTraceSampled      β”‚ Bool     β”‚
β”‚ resource              β”‚ String   β”‚
β”‚ session_id            β”‚ String   β”‚
β”‚ severity_number       β”‚ String   β”‚
β”‚ severity_text         β”‚ String   β”‚
β”‚ solver_service_log    β”‚ Bool     β”‚
β”‚ span_id               β”‚ String   β”‚
β”‚ time                  β”‚ String   β”‚
β”‚ timestamp             β”‚ String   β”‚
β”‚ trace_flags           β”‚ Float64  β”‚
β”‚ trace_id              β”‚ String   β”‚
β”‚ unixtime              β”‚ Float64  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

41 rows in set. Elapsed: 0.007 sec.
If I'm interpreting this correctly, there is in fact a
body
attribute. I'm not sure how the query service around that deals with the ambiguity between
body
and
attributes.body
, but the symptoms I'm seeing suggest this is a likely culprit
Would it be safe to surgically delete these rows in the
signoz_logs.logs_attribute_keys
table to restore service?
Hi @nitya-signoz the Logs Explorer is completely unusable for us right now -- any guidance would be appreciated
n
When you open the explorer page, can you share the response of query range api from the network tab ?
n
This is the response from the
api/v3/autocomplete/attribute_keys
route:
Copy code
{
  "status": "success",
  "data": {
    "attributeKeys": [
      {
        "key": "k8s_cluster_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "k8s_container_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_container_restart_count",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_deployment_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_namespace_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_node_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_pod_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_pod_start_time",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_pod_uid",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "log_file_path",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "log_iostream",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "logtag",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "time",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "attributes",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "body",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "chunker_config",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "data",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "distance_metric",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "dropped_attributes",
        "dataType": "float64",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "embedding_digest",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "embedding_size",
        "dataType": "float64",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "exception_message",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "exception_stacktrace",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "exception_type",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "k8s_pod_ip",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "max_batch_size",
        "dataType": "float64",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "max_input_char_length",
        "dataType": "float64",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "object",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "otelServiceName",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "otelSpanID",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "otelTraceID",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "otelTraceSampled",
        "dataType": "bool",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "resource",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "service_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "service_sha",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "service_version",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "severity_number",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "severity_text",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "span_id",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "telemetry_auto_version",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "telemetry_sdk_language",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "telemetry_sdk_name",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "telemetry_sdk_version",
        "dataType": "string",
        "type": "resource",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "timestamp",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "trace_flags",
        "dataType": "float64",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "trace_id",
        "dataType": "string",
        "type": "tag",
        "isColumn": false,
        "isJSON": false
      },
      {
        "key": "span_id",
        "dataType": "string",
        "type": "",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "trace_flags",
        "dataType": "int64",
        "type": "",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "severity_text",
        "dataType": "string",
        "type": "",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "severity_number",
        "dataType": "int64",
        "type": "",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "body",
        "dataType": "string",
        "type": "",
        "isColumn": true,
        "isJSON": false
      },
      {
        "key": "trace_id",
        "dataType": "string",
        "type": "",
        "isColumn": true,
        "isJSON": false
      }
    ]
  }
}
You can see two occurrences of
body
, one with no type (I assume the top-level/native key) and another as a
tag
n
Try refreshing the page, i need the response of query range api
n
got it, here it is
Copy code
{
  "status": "success",
  "data": {
    "resultType": "",
    "result": [
      {
        "queryName": "A",
        "series": null,
        "list": null
      }
    ]
  }
}
n
do you still have the pipeline?
you can disable the pipeline and truncate the
logs_attribute_keys
table by running the following on your clickhouse cli
Copy code
truncate table logs_attribute_keys on cluster cluster
n
Thanks @nitya-signoz. I no longer have the pipeline, and I've truncated that table. However, filtering on
body
is still completely nonfunctional
n
when you click on run then are there any errors ? check the network tab as well.
n
I see no errors when I click
Run Query
, neither on the console nor the network tab. This is what I get back from `query_range`:
Copy code
{
  "status": "success",
  "data": {
    "resultType": "",
    "result": [
      {
        "queryName": "A",
        "series": null,
        "list": null
      }
    ]
  }
}
I've truncated the
signoz_logs.logs_attribute_keys
table, which now contains the following rows:
Copy code
SELECT *
FROM signoz_logs.logs_attribute_keys

Query id: d821aeea-cd57-4595-83ae-9f67b4053eea

β”Œβ”€name──────────┬─datatype─┐
β”‚ log_file_path β”‚ String   β”‚
β”‚ log_iostream  β”‚ String   β”‚
β”‚ logtag        β”‚ String   β”‚
β”‚ time          β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€name──────────┬─datatype─┐
β”‚ log_file_path β”‚ String   β”‚
β”‚ log_iostream  β”‚ String   β”‚
β”‚ logtag        β”‚ String   β”‚
β”‚ time          β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€name──────────┬─datatype─┐
β”‚ log_file_path β”‚ String   β”‚
β”‚ log_iostream  β”‚ String   β”‚
β”‚ logtag        β”‚ String   β”‚
β”‚ time          β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€name─────────────────┬─datatype─┐
β”‚ exception_stacktrace β”‚ String   β”‚
β”‚ exception_type       β”‚ String   β”‚
β”‚ log_file_path        β”‚ String   β”‚
β”‚ log_iostream         β”‚ String   β”‚
β”‚ logtag               β”‚ String   β”‚
β”‚ otelServiceName      β”‚ String   β”‚
β”‚ otelSpanID           β”‚ String   β”‚
β”‚ otelTraceID          β”‚ String   β”‚
β”‚ otelTraceSampled     β”‚ Bool     β”‚
β”‚ time                 β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€name──────────┬─datatype─┐
β”‚ log_file_path β”‚ String   β”‚
β”‚ log_iostream  β”‚ String   β”‚
β”‚ logtag        β”‚ String   β”‚
β”‚ time          β”‚ String   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

26 rows in set. Elapsed: 0.003 sec.
This looks good to me, I don't see all the attributes that had been denormalized, such as
body
However, the
attributes_keys
route in my networking tab is still returning a long list of keys including those that should no longer be present:
As you can see in the request payload for the call to
query_range
,
Copy code
{
  "start": 1702051527000,
  "end": 1702055127000,
  "step": 60,
  "variables": {},
  "compositeQuery": {
    "queryType": "builder",
    "panelType": "list",
    "builderQueries": {
      "A": {
        "dataSource": "logs",
        "queryName": "A",
        "aggregateOperator": "noop",
        "aggregateAttribute": {
          "id": "------false",
          "dataType": "",
          "key": "",
          "isColumn": false,
          "type": "",
          "isJSON": false
        },
        "filters": {
          "items": [
            {
              "id": "4e73571b",
              "key": {
                "key": "body",
                "dataType": "string",
                "type": "tag",
                "isColumn": false,
                "isJSON": false,
                "id": "body--string--tag--false"
              },
              "op": "contains",
              "value": "127"
            }
          ],
          "op": "AND"
        },
        "expression": "A",
        "disabled": false,
        "having": [],
        "stepInterval": 60,
        "limit": null,
        "orderBy": [
          {
            "columnName": "timestamp",
            "order": "desc"
          }
        ],
        "groupBy": [],
        "legend": "",
        "reduceTo": "sum",
        "offset": 0,
        "pageSize": 100
      }
    }
  }
}
the filter is being defined on the
body
key of type
tag
, which is wrong (and as far as Clickhouse claims no longer exists)
There must be some other source of truth being used to determine the valid attribute keys, and this is falling out of sync with the Clickhouse
signoz_logs.logs_attribute_keys
table
n
can you truncate
tag_attributes
table as well
n
Yup, ended up truncating
tag_attributes
and that did the trick πŸ™Œ