Skip to content

Otel apm OpenSearch template#6435

Open
san81 wants to merge 3 commits into
opensearch-project:mainfrom
san81:otel-apm-opensearch-template
Open

Otel apm OpenSearch template#6435
san81 wants to merge 3 commits into
opensearch-project:mainfrom
san81:otel-apm-opensearch-template

Conversation

@san81

@san81 san81 commented Jan 28, 2026

Copy link
Copy Markdown
Collaborator

Description

Introducing Otel APM related

  • Index template
  • Index ISM policy
  • Non ISM policy

That will be used when the index type is index_type: "otel-v2-apm-service-map"

Required as pre work for otel-apm-service-map processor that we will be added in the next PRs

Check List

  • New functionality includes testing.
  • New functionality has a documentation issue. Please link to it in this PR.
    • New functionality has javadoc added
  • Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

san81 added 2 commits January 27, 2026 17:02
Signed-off-by: Santhosh Gandhe <1909520+san81@users.noreply.github.com>
Signed-off-by: Santhosh Gandhe <1909520+san81@users.noreply.github.com>
Signed-off-by: Santhosh Gandhe <1909520+san81@users.noreply.github.com>
vamsimanohar added a commit to vamsimanohar/data-prepper that referenced this pull request Feb 18, 2026
…y emission

Refactors the APM service map processor to use a unified model structure
replacing Service/ServiceConnection/ServiceOperationDetail with Node/NodeOperationDetail.
Implements CLIENT-span-primary emission algorithm to eliminate duplicate events.

Model Changes:
- Node.java: Unified service entity with type field for future extensibility
- NodeOperationDetail: Single entity for both topology and operation events
- Operation: Simplified to name + attributes structure
- CLIENT-primary algorithm: CLIENT spans emit complete events using decoration data

OpenSearch Integration:
- Added OTEL_APM_SERVICE_MAP index type following PR opensearch-project#6435 patterns
- Index template with dynamic mappings for groupByAttributes and operation attributes
- ISM policies for automated rollover (10gb/24h)
- Updated IndexManagerFactory, IndexConstants, IndexConfiguration

Configuration:
- Changed eventType from SERVICE_MAP_V2 to SERVICE_MAP
- Updated README with proper index_type: otel-v2-apm-service-map configuration
- Coexists with legacy service_map processor using different index patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>
kkondaka pushed a commit that referenced this pull request Feb 19, 2026
…6536)

* Refactor to unified Node/NodeOperationDetail with SERVICE_MAP_V2 events

- Replace Service/ServiceConnection/ServiceOperationDetail with unified Node/NodeOperationDetail model
- Node adds type field for future entity types (database, queue, etc)
- Operation simplified to name + attributes
- NodeOperationDetail single entity with dual hash fields (nodeConnectionHash, operationConnectionHash)
- CLIENT-span-primary emission: CLIENT spans emit full NodeOperationDetail, leaf SERVER spans for services with no outgoing calls
- Update eventType to SERVICE_MAP_V2 for new index pattern otel-v2-apm-service-map

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>

* Refactor model to unified Node/NodeOperationDetail with CLIENT-primary emission

Refactors the APM service map processor to use a unified model structure
replacing Service/ServiceConnection/ServiceOperationDetail with Node/NodeOperationDetail.
Implements CLIENT-span-primary emission algorithm to eliminate duplicate events.

Model Changes:
- Node.java: Unified service entity with type field for future extensibility
- NodeOperationDetail: Single entity for both topology and operation events
- Operation: Simplified to name + attributes structure
- CLIENT-primary algorithm: CLIENT spans emit complete events using decoration data

OpenSearch Integration:
- Added OTEL_APM_SERVICE_MAP index type following PR #6435 patterns
- Index template with dynamic mappings for groupByAttributes and operation attributes
- ISM policies for automated rollover (10gb/24h)
- Updated IndexManagerFactory, IndexConstants, IndexConfiguration

Configuration:
- Changed eventType from SERVICE_MAP_V2 to SERVICE_MAP
- Updated README with proper index_type: otel-v2-apm-service-map configuration
- Coexists with legacy service_map processor using different index patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>

* Update README with algorithm docs and remove standalone MD files

- Merged NodeOperationDetail algorithm documentation into processor README
- Updated output events section to reflect unified Node/NodeOperationDetail model
- Added detailed metrics generation documentation
- Removed standalone node-operation-detail-algorithm.md from tracking
- Added algorithm design MD files to .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>

* Fix index-template version to use composable template format

The index-template/ copy needs the "template" wrapper for the modern
OpenSearch composable index template API, while the root copy uses
the V1 legacy format. Previously both were identical (V1 format).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>

* Clean up .gitignore and optimize index templates

- Remove local-only entries from .gitignore (algorithm MDs, claude.md)
- Collapse 12 dynamic templates to 6 using wildcard path matching
- Remove ignore_above restrictions from all keyword fields
- Fix index-template/ copy to use composable template format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>

* Remove eventType from index templates and fix test issues

- Remove eventType field from both index templates (V1 and composable)
  eventType is pipeline routing metadata, not part of NodeOperationDetail model
- Remove broken testWindowProcessingWithInterruptedException test
  Test doesn't work with @DataPrepperPluginTest annotation due to override restrictions

Addresses review feedback from @kkondaka

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>

---------

Signed-off-by: Vamsi Manohar <reddyvam@amazon.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant