Motivation
When customers raise support issues with CrateDB, troubleshooting often requires a holistic view of the cluster state.
Customers usually include the information they consider relevant, but this is naturally only a subset of the information available. During analysis, support often needs to request additional data, such as table schemas, execution plans, shard allocations, disk utilization, data volume, logs, monitoring data, or job statistics.
This can lead to several rounds of written exchange before enough information is available to diagnose and close the case. These feedback cycles increase time to resolution and can negatively impact customer satisfaction.
Aim
We want to have a one-stop command for customers to execute that collects as much raw data as possible.
Interpretation of the data shall only later happen on the CrateDB support side. Keeping captured data as raw as possible allows CrateDB support to investigate even low-level details. Interpretations shall be derived later.
Status Quo
The toolkit currently provides several commands to collect or analyze diagnostic information:
ctk info jobs: Interprets job data (runtime percentiles, per-user aggregates, individual query statistics)
ctk cfr jobstats collect|view: Collects job statistics on an ongoing basis. Also interprets job data, unclear differentiation from ctk info jobs.
ctk info cluster: Returns raw system table data to some extend (sys.nodes, sys.allocations), but mainly returns hand-picked metrics and health indicators (shards not started, number of ongoing rebalances, ...)
ctk cfr sys-export: Returns a true raw system table export as-is, no filtering or interpretation
ctk cfr info record: A combination of ctk info cluster and ctk info jobs
Missing Pieces
Information that is currently not captured:
- Any JMX/monitoring data (out of scope, but long-term interesting to standardise collection too)
- CrateDB logs (out of scope for
cratedb-toolkit as a client application, at least without additional CrateDB adjustments to make logs collectable?)
CREATE TABLE statements (should be fully reproducible from system tables?)
Assessment
From my perspective, the current implementation mixes two different concerns:
- collecting raw diagnostic data
- interpreting diagnostic data
Going forward from a support-perspective, I suggest we limit information collection to raw data, as currently implemented in ctk cfr sys-export. Such commands can define the schema for data exchange between customers and support. Other (internal) tools can build upon that schema and provide derived insights. In the long-run, such tools may become deliverable products in the hands of customers for self-service.
As a result of reducing cratedb-toolkit scope, user orientation improves and customer-facing tooling becomes less dependent on CrateDB versions. Currently, it is very difficult to understand which command does what from the documentation. Partly due to three letter acronyms (ctk, cfr), combined with generic words such as "info" (ctk cfr info) and documentation being very sparse.
@seut @ThomasBestfleischCrate @karynzv This issue describes the current state as discussed on Monday
Motivation
When customers raise support issues with CrateDB, troubleshooting often requires a holistic view of the cluster state.
Customers usually include the information they consider relevant, but this is naturally only a subset of the information available. During analysis, support often needs to request additional data, such as table schemas, execution plans, shard allocations, disk utilization, data volume, logs, monitoring data, or job statistics.
This can lead to several rounds of written exchange before enough information is available to diagnose and close the case. These feedback cycles increase time to resolution and can negatively impact customer satisfaction.
Aim
We want to have a one-stop command for customers to execute that collects as much raw data as possible.
Interpretation of the data shall only later happen on the CrateDB support side. Keeping captured data as raw as possible allows CrateDB support to investigate even low-level details. Interpretations shall be derived later.
Status Quo
The toolkit currently provides several commands to collect or analyze diagnostic information:
ctk info jobs: Interprets job data (runtime percentiles, per-user aggregates, individual query statistics)ctk cfr jobstats collect|view: Collects job statistics on an ongoing basis. Also interprets job data, unclear differentiation fromctk info jobs.ctk info cluster: Returns raw system table data to some extend (sys.nodes,sys.allocations), but mainly returns hand-picked metrics and health indicators (shards not started, number of ongoing rebalances, ...)ctk cfr sys-export: Returns a true raw system table export as-is, no filtering or interpretationctk cfr info record: A combination ofctk info clusterandctk info jobsMissing Pieces
Information that is currently not captured:
cratedb-toolkitas a client application, at least without additional CrateDB adjustments to make logs collectable?)CREATE TABLEstatements (should be fully reproducible from system tables?)Assessment
From my perspective, the current implementation mixes two different concerns:
Going forward from a support-perspective, I suggest we limit information collection to raw data, as currently implemented in
ctk cfr sys-export. Such commands can define the schema for data exchange between customers and support. Other (internal) tools can build upon that schema and provide derived insights. In the long-run, such tools may become deliverable products in the hands of customers for self-service.As a result of reducing
cratedb-toolkitscope, user orientation improves and customer-facing tooling becomes less dependent on CrateDB versions. Currently, it is very difficult to understand which command does what from the documentation. Partly due to three letter acronyms (ctk,cfr), combined with generic words such as "info" (ctk cfr info) and documentation being very sparse.@seut @ThomasBestfleischCrate @karynzv This issue describes the current state as discussed on Monday