Skip to content

describe

import { Aside } from ‘@astrojs/starlight/components’;

The describe command queries index metadata, returning field names, data types, and schema information. It must be used as the first command in a PPL query — it cannot appear after a pipe. This is your starting point when exploring an unfamiliar index.

describe [<data-source>.][<schema>.]<table-name>
ArgumentDescription
<table-name>The index or index pattern to describe. Supports wildcards (e.g., logs-otel-v1*).
ArgumentDefaultDescription
<data-source>OpenSearch defaultThe data source to query.
<schema>Default schemaThe schema containing the table.

The describe command returns metadata rows with the following key columns:

ColumnDescription
TABLE_NAMEName of the index.
COLUMN_NAMEName of the field.
TYPE_NAMEData type of the field (e.g., string, bigint, timestamp, object, nested).

Additional columns include TABLE_CAT, TABLE_SCHEM, DATA_TYPE, COLUMN_SIZE, NULLABLE, ORDINAL_POSITION, and others following JDBC metadata conventions.

  • describe must be the first command in the query. You cannot pipe data into describe.
  • Combine describe with where and fields to filter and focus on specific columns or types.
  • Use wildcard index patterns to describe fields across multiple indices at once.
  • The output helps you discover the correct field names and types before writing more complex queries — especially useful for OTel indices where field names follow dotted semantic conventions.

List all fields and their types in the OTel logs index:

describe logs-otel-v1*

Try in playground →

Filter for all bigint (long) fields:

describe logs-otel-v1*
| where TYPE_NAME = 'bigint'

Try in playground →

Search for fields containing service in their name:

describe logs-otel-v1*
| where like(COLUMN_NAME, '%service%')

Try in playground →

Discover GenAI semantic convention fields in your OTel index:

describe logs-otel-v1*
| where like(COLUMN_NAME, '%gen_ai%')

Try in playground →

Explore the span index schema to understand available trace fields:

describe otel-v1-apm-span-*
| sort COLUMN_NAME

Compare schemas across OTel signal indices

Section titled “Compare schemas across OTel signal indices”

Describe both the log and trace indices to find common fields for cross-signal correlation:

describe logs-otel-v1*
| where COLUMN_NAME IN ('traceId', 'spanId', 'time', 'severityText', 'body')

Try in playground →

Then compare with the trace index:

describe otel-v1-apm-span-*
| where COLUMN_NAME IN ('traceId', 'spanId', 'startTime', 'endTime', 'serviceName')

Find all object and nested field types to understand the document structure:

describe logs-otel-v1*
| where TYPE_NAME = 'object' OR TYPE_NAME = 'nested'
| sort COLUMN_NAME

Try in playground →

  • fields — select or exclude fields from query results
  • showdatasources — list all configured data sources
  • search — retrieve documents from an index