You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem?
This RFC proposes the introduction of a new feature within the OpenSearch Observability plugin: a workflow-based API named "Workflow".
This API is designed to orchestrate multiple steps, each corresponding to a separate API call to a core API within OpenSearch. The primary goal of the Workflow API is to facilitate complex data preparation processes involving enrichment, aggregation, reindexing, and other transformations.
By enabling users to define multi-step workflows, this feature aims to simplify the preparation of raw data for visualization, thereby providing deeper insights into system status and health.
Proposal Workflow Definition
A workflow is defined as a sequence of steps, each of which corresponds to an API call within OpenSearch. Users can specify the details of each step, including the API endpoint to be called, the HTTP method to use, and the body of the request. Workflows are defined in JSON format, allowing for easy creation, modification, and sharing.
Workflow Structure
A typical workflow definition includes the following components:
Name: A unique identifier for the workflow.
Description: A brief explanation of the workflow's purpose and its operations.
Version: The version of the workflow definition.
Parameters: A list of parameters that can be used throughout the workflow. These parameters can be dynamically replaced at runtime.
Steps: An ordered list of steps that the workflow will execute. Each step includes:
Name: A unique identifier for the step.
Method: The HTTP method (e.g., GET, POST, PUT) to be used for the API call.
Endpoint: The API endpoint to call. This can include placeholders for parameters defined in the workflow.
Body: The request body for the API call, if applicable.
Example
The workflow metadata parameters:
{
"name": "Reds-Services-Workflow",
"description": "This workflow creates a RED transformation metrics top measure services performance",
"version": "1.0.0",
"parameters": [
"index_name",
"rollup_name",
"current_time",
"start_time"
],
The workflow json request will be stored as a versioned separate document, this document will be enriched with the http response returned by the step's endpoint.
Each workflow request will be assigned with an ID which can be later queries for status.
A status API will be available for query and will give the workflow state according to each step status status:
.../workflow/${id}/status - will return the step's status according to the current state.
Example Workflow: RED Metrics for Service Performance
Below is an example workflow definition request designed to create RED (Rate, Errors, Duration) transformation metrics to measure service performance.
The next workflow (described here) is responsible of preparing a transformation aggregative index that contains the RED (requests, errors, duration) summaries for the Observability services as they defined by the OTEL schema.
Is your feature request related to a problem?
This RFC proposes the introduction of a new feature within the OpenSearch Observability plugin: a workflow-based API named "Workflow".
This API is designed to orchestrate multiple steps, each corresponding to a separate API call to a core API within OpenSearch. The primary goal of the Workflow API is to facilitate complex data preparation processes involving enrichment, aggregation, reindexing, and other transformations.
By enabling users to define multi-step workflows, this feature aims to simplify the preparation of raw data for visualization, thereby providing deeper insights into system status and health.
Proposal
Workflow Definition
A workflow is defined as a sequence of steps, each of which corresponds to an API call within OpenSearch. Users can specify the details of each step, including the API endpoint to be called, the HTTP method to use, and the body of the request. Workflows are defined in JSON format, allowing for easy creation, modification, and sharing.
Workflow Structure
A typical workflow definition includes the following components:
Example
The workflow metadata parameters:
The workflow steps parameters:
Workflow Backend Support
The workflow json request will be stored as a versioned separate document, this document will be enriched with the http response returned by the step's endpoint.
Each workflow request will be assigned with an ID which can be later queries for status.
A
status
API will be available for query and will give the workflow state according to each step status status:.../workflow/${id}/status
- will return the step's status according to the current state.Example
Example Workflow: RED Metrics for Service Performance
Below is an example workflow definition request designed to create RED (Rate, Errors, Duration) transformation metrics to measure service performance.
The next workflow (described here) is responsible of preparing a transformation aggregative index that contains the RED (requests, errors, duration) summaries for the Observability services as they defined by the OTEL schema.
Do you have any additional context?
The text was updated successfully, but these errors were encountered: