mc support telemetry analyze
mc support telemetry analyze provides an interactive terminal interface for analyzing OpenTelemetry trace data.
Use this command to perform quick latency analysis on recorded telemetry files.
The command reads trace files created by mc support telemetry record and displays them in an interactive tree view with duration metrics, percentage breakdowns, and color-coded latency indicators.
Syntax
Parameters
INPUT
Required
The path to the telemetry file to analyze. You can analyze any of the following telemetry files:
- Local files (
.otlp,.bin,.enc,.zst) - Encrypted files (requires
--private-key) - Remote S3/AIStor objects (for example,
myaistor/testbucket/mytrace.otlp)
--private-key
Optional
Path to the private key for decrypting encrypted telemetry files.
Default: support_private.pem
The command automatically searches for numbered key variants, such as file.pem, file-2.pem, file-3.pem.
--min-duration
Optional
Filter out spans shorter than the specified duration.
Accepts duration strings such as 100ms, 1s, or 500us.
Use this to focus on slow operations and reduce noise from fast spans.
--service
Optional
Filter spans by service name.
Only spans from the specified service appear in the analysis.
AIStor telemetry uses the service name AIStor.
This filter is useful when analyzing telemetry files that contain traces from multiple services or when filtering traces collected from an OpenTelemetry collector that aggregates data from multiple sources.
--filter
Optional
Filter spans by name using substring matching.
For example, --filter=PutObject shows only spans with “PutObject” in their name.
--type
Optional
Filter by trace type. You can specify this flag multiple times to include multiple types.
Valid types include:
| Type | Description |
|---|---|
admin |
Admin API calls |
batchexpire |
Batch expiration operation calls |
batchkeyrotation |
Batch key rotation operation calls |
batchreplication |
Batch replication operation calls |
bootstrap |
Cluster bootstrap events |
decommission |
Decommission operation calls |
formatting |
Formatting events |
ftp |
FTP server calls |
healing |
Healing operation calls |
iam |
Identity and access management calls |
ilm |
Lifecycle management calls |
internal |
Internal operations and grid RPC calls |
kms |
KMS interaction calls |
object |
Object layer calls |
os |
Operating system calls |
rebalance |
Rebalance operation calls |
replication |
Replication events |
replicationresync |
Replication resync operation calls |
s3 |
S3 API calls |
scanner |
Scanner operation calls |
storage |
Storage layer calls |
The AIStor Client ignores capitalization when specifying trace types.
--top
Optional
Show only the top N slowest traces.
Set to 0 to show all traces.
Default: 0 (all traces)
--export
Optional
Export the analysis to a JSON file at the specified path.
The exported file contains the full trace tree structure with durations and percentages.
Global flags
This command supports any of the global flags.
Required permissions
This command performs client-side analysis and does not require any AIStor admin permissions.
For local files, no permissions are required.
For remote S3/AIStor objects, the command requires the s3:GetObject permission on the bucket and object path.
The authenticated user must have read access to the telemetry file stored in the bucket.
Interactive interface
The command launches a terminal user interface (TUI) with two view modes.
Tree view
The default view displays traces as an expandable tree hierarchy. Each span shows:
- Name: The operation or span name
- Duration: Time taken, color-coded by latency:
- Green: Less than 50ms
- Yellow: 50ms to 200ms
- Red: More than 200ms
- Percentage bar: Visual representation of time relative to the root span
- Percentage: Numeric percentage of the root span duration
Grouped view
Press Tab or g to switch to the grouped view.
This view aggregates root spans by operation name and displays statistics:
- Count: Number of occurrences
- Avg: Average duration
- Min: Minimum duration
- p50/p95/p99: Percentile durations
- Max: Maximum duration
- Err: Error count
- Err%: Error percentage
Select an operation and press Enter or → to view individual instances.
Keyboard controls
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate up/down |
→ or l |
Expand node |
← or h |
Collapse node or go to parent |
Space |
Toggle expand/collapse |
Enter or d |
View span details |
Tab or g |
Switch between tree and grouped views |
s |
Cycle sort mode (grouped view) |
c |
Collapse all nodes |
Home/End |
Jump to first/last item |
PgUp/PgDn |
Page up/down |
q or Esc |
Quit |
Span details
The detail view shows the following information for a span:
- Span ID and parent span ID
- Start and end timestamps
- Duration
- Span kind, which indicates the role of the span:
INTERNAL: An operation within the serviceSERVER: Handling an incoming requestCLIENT: Making an outgoing request to another service or nodePRODUCER: Creating a message for asynchronous processingCONSUMER: Receiving a message from asynchronous processing
- Status code and message
- Service name
- All span and resource attributes
- Events with timestamps
Examples
Analyze a local telemetry file
The following command opens the interactive analyzer for a local file:
mc support telemetry analyze ./metrics-2025-01-15.bin
Analyze an encrypted file
The following command analyzes an encrypted telemetry file using a private key:
mc support telemetry analyze --private-key=support_private.pem ./metrics.enc
Filter to S3 operations slower than 100ms
The following command shows only S3 API calls that took longer than 100ms:
mc support telemetry analyze --type=s3 --min-duration=100ms ./mytrace.otlp
Export analysis to JSON
The following command exports the analysis to a JSON file for scripting or further processing:
mc support telemetry analyze --export=analysis.json ./mytrace.otlp
Use --json for JSON output to stdout instead of the interactive interface:
mc support telemetry analyze --json ./mytrace.otlp