About tenzir-ecs
A reference skill for applying Elastic Common Schema (ECS) to logs, metrics, security telemetry, and observability events. It combines authoritative YAML field data with guidance for categorization, mapping, and OpenTelemetry alignment.
Key features
- 01Looks up ECS fields and fieldsets
- 02References allowed event categories and types
- 03Guides network event mapping
- 04Covers custom fields and reuse metadata
- 05Provides an OpenTelemetry field crosswalk
Use cases
- 01Mapping source events to ECS fields
- 02Choosing valid event categorization values
- 03Aligning ECS data with OpenTelemetry
- 04Checking whether an ECS field is documented
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ tenzir/ skills --skill tenzir-ecsAfter installing, type/tenzir-ecsin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
categorization.yamldocs/categorization-usage.mdconventions.mdcustom-fields.mddesign-principles.mdimplementation-patterns.mdmapping-network-events.mdopentelemetry.mddocs/usage/cloud.mdservice.mdthreat.mduser.mdfields/agent_build_original.yamlagent_ephemeral_id.yamlagent_id.yamlagent_name.yamlagent_type.yamlagent_version.yamlat_timestamp.yamlclient_address.yamlclient_as_number.yamlclient_as_organization_name.yamlclient_bytes.yamlclient_domain.yamlclient_geo_city_name.yamlclient_geo_continent_code.yamlclient_geo_continent_name.yamlclient_geo_country_iso_code.yamlclient_geo_country_name.yamlclient_geo_location.yamlDetails
From the project READMEElastic Common Schema
Elastic Common Schema (ECS) defines common fields for logs, metrics, security telemetry, and observability data so events from different sources can be queried and correlated consistently.
This skill is generated from the latest supported ECS release in this repository: v9.5.0 / 9.5.0.
Use the YAML files as the authoritative reference for exact field names, fieldsets, types, levels, allowed values, normalization hints, reuse metadata, and OpenTelemetry relations.
Use the Markdown docs only for conceptual guidance, mapping examples, and implementation conventions.
If a field, fieldset, allowed value, or relation is not present in the YAML data, say that it is not documented here.
Data files
- Use fields.yaml to find a dotted ECS field and then load the referenced
fields/<field>.yamlfile. - Use fieldsets.yaml to choose a fieldset and then load the referenced
fieldsets/<fieldset>.yamlfile. - Use categorization.yaml for
event.kind,event.category,event.type,event.outcome, allowed values, and expected category/type combinations. - Use otel.yaml as the compact ECS-keyed crosswalk for OpenTelemetry relations.
- Use source.md for release provenance, source artifacts, copied docs, referenced upstream docs, and counts.
Complementary docs
- Start with Implementation patterns, Design principles, and Conventions for general modeling questions.
- Use categorization.yaml and Using categorization fields when assigning
event.*categorization values. - Use Mapping network events for
source/destinationversusclient/serverdecisions. - Use Custom fields when ECS has no suitable field.
- Use ECS and OpenTelemetry together with otel.yaml for OTel alignment questions.
- Use focused usage docs for cloud, service, threat, and user mapping scenarios.
Mapping rules
- Populate required fields first:
@timestampandecs.version. - Prefer documented ECS fields over custom fields when the field semantics match.
- Preserve source-specific detail in custom fields when ECS has no matching field; use
labelsfor small keyword metadata when appropriate. - For categorization, use only allowed values from categorization.yaml; leave categorization fields empty when no allowed value fits.
- Treat
event.categoryandevent.typeas arrays and use multiple values only when the event reasonably belongs to multiple categories or types. - Use fieldset reuse metadata in fieldsets.yaml to distinguish role-specific locations such as
user.target,process.parent,cloud.origin, andservice.target. - For network events, use
source/destinationfor packet or flow direction and also populateclient/serverwhen the endpoint roles are known. - Copy pivot values into
related.*when the docs or field semantics call for cross-field searching.
Question routing
- What does field X mean? Start with fields.yaml, then load the selected field YAML.
- What fields exist under fieldset X? Start with fieldsets.yaml, then load the selected fieldset YAML.
- Which
event.categoryorevent.typeshould I use? Start with categorization.yaml, then read Using categorization fields for examples. - How should I map a network event? Read Mapping network events, then inspect the relevant fieldsets.
- How do I model users, cloud resources, services, or threat indicators? Read the matching usage doc under
docs/usage/, then inspect the relevant fieldset YAML. - How does ECS relate to OpenTelemetry? Use otel.yaml for the compact field crosswalk and ECS and OpenTelemetry for conceptual guidance.
- What if ECS has no matching field? Read Custom fields.
- What raw upstream source backs this skill? Use source.md.