Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE]Integration registry - loading and filtering #1441

Closed
YANG-DB opened this issue Mar 1, 2023 · 1 comment
Closed

[FEATURE]Integration registry - loading and filtering #1441

YANG-DB opened this issue Mar 1, 2023 · 1 comment
Labels
design documentation Improvements or additions to documentation enhancement New feature or request integration Integration project
Milestone

Comments

@YANG-DB
Copy link
Member

YANG-DB commented Mar 1, 2023

Previous Step
Next Step

Is your feature request related to a problem?
As part of the Integration Ux workflow, once the Integration plugin is loaded it should load all the available integrations that are bundled in the integration repo.

Screenshot 2023-03-01 at 10 01 45 AM

The API needed from the backend should be as follows:
Query:

GET _integration/repository?filter=type:Logs&category:web,html

Response:

{
  "name": "nginx",
  "version": {
    "integ": "0.1.0",
    "schema": "1.0.0",
    "resource": "^1.23.0"
  },
  "description": "Nginx HTTP server collector",
  "Information":"file:///.../schema/logs/info.html",
  "identification": "instrumentationScope.attributes.identification",
  "categories": [
    "web","http"
  ],
  "collection":[
    {
      "logs": [{
        "info": "access logs",
        "input_type":"logfile",
        "dataset":"nginx.access",
        "labels" :["nginx","access"],
        "schema": "file:///.../schema/logs/access.json"
      },
        {
          "info": "error logs",
          "input_type":"logfile",
          "labels" :["nginx","error"],
          "dataset":"nginx.error",
        "schema": "file:///.../schema/logs/error.json"
        }]
    },
    {
      "metrics": [{
        "info": "status metrics",
        "input_type":"metrics",
        "dataset":"nginx.status",
        "labels" :["nginx","status"],
        "schema": "file:///.../schema/logs/status.json"
      }]
    }
  ],
  "repo": {
    "github": "https://github.com/opensearch-project/observability/tree/main/integrarions/nginx"
  }
}

The integration object schema is supported by both B/E & F/E for display & query to the correct fields
Integration config schema


The backend responsibilities :

  • scan the Integration folder (on-load)

    • In the future this can also be loaded from a remote publish location
  • load into cache each integration config file

  • allow filtering on the registry API

The frontend responsibilities :

  • enable shared info (html, images) resources in a CDN
  • allow filtering for the integrations

Screenshot 2023-03-01 at 10 13 41 AM

In addition the following API is also supported

GET _integration/repository/$name

This call results in returning the cached integration config json object
It would be used for display and route the F/E for fetching the relevant page assets

Screenshot 2023-03-01 at 10 13 58 AM

Once an integration was selected

Screenshot 2023-03-01 at 10 38 50 AM

This page will require the F/E to fetch multiple assets from different locations

  • images
  • repository url
  • license url
  • html
  • json schema objects for that integration content

What solution would you like?
implement B/E :

  • registry loading & cache mechanism
  • registry API
  • registry filter API

implement F/E :

  • integrations list display
  • integrations filter display
  • integration panel display

Flow Diagram
Screenshot 2023-03-01 at 7 00 50 PM

What alternatives have you considered?
N/A

Do you have any additional context?

The UX full happy flow for loading an integration
nginx-integration-ui-mock

@YANG-DB YANG-DB added enhancement New feature or request untriaged documentation Improvements or additions to documentation design v2.7.0 and removed untriaged labels Mar 1, 2023
@YANG-DB YANG-DB linked a pull request Mar 1, 2023 that will close this issue
6 tasks
@YANG-DB YANG-DB added the integration Integration project label Mar 7, 2023
@YANG-DB YANG-DB added this to the 2.7 milestone Mar 7, 2023
@YANG-DB YANG-DB modified the milestones: 2.7, 2.8 Apr 3, 2023
@YANG-DB YANG-DB removed the v2.7.0 label Apr 3, 2023
@derek-ho
Copy link
Collaborator

Currently outdated, closing it out

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design documentation Improvements or additions to documentation enhancement New feature or request integration Integration project
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants