diff --git a/openmetadata-docs/content/partials/v1.9/connectors/dashboard/connectors-list.md b/openmetadata-docs/content/partials/v1.9/connectors/dashboard/connectors-list.md index bbc01b5d010..7e81cc5b400 100644 --- a/openmetadata-docs/content/partials/v1.9/connectors/dashboard/connectors-list.md +++ b/openmetadata-docs/content/partials/v1.9/connectors/dashboard/connectors-list.md @@ -1,6 +1,7 @@ {% connectorsListContainer %} {% connectorInfoCard name="Domo" stage="PROD" href="/connectors/dashboard/domo-dashboard" platform="OpenMetadata" / %} +{% connectorInfoCard name="Grafana" stage="BETA" href="/connectors/dashboard/grafana" platform="OpenMetadata" / %} {% connectorInfoCard name="Lightdash" stage="PROD" href="/connectors/dashboard/lightdash" platform="OpenMetadata" / %} {% connectorInfoCard name="Looker" stage="PROD" href="/connectors/dashboard/looker" platform="OpenMetadata" / %} {% connectorInfoCard name="Metabase" stage="PROD" href="/connectors/dashboard/metabase" platform="OpenMetadata" / %} diff --git a/openmetadata-docs/content/v1.9.x-SNAPSHOT/collate-menu.md b/openmetadata-docs/content/v1.9.x-SNAPSHOT/collate-menu.md index 4f96375bfc3..ad7799895f7 100644 --- a/openmetadata-docs/content/v1.9.x-SNAPSHOT/collate-menu.md +++ b/openmetadata-docs/content/v1.9.x-SNAPSHOT/collate-menu.md @@ -327,6 +327,12 @@ site_menu: url: /connectors/dashboard/domo-dashboard/yaml - category: Connectors / Dashboard / Domo Dashboard / Troubleshooting url: /connectors/dashboard/domo-dashboard/troubleshooting + - category: Connectors / Database / Grafana + url: /connectors/dashboard/grafana + - category: Connectors / Database / Grafana / Run Externally + url: /connectors/dashboard/grafana/yaml + - category: Connectors / Database / Grafana / Troubleshooting + url: /connectors/dashboard/grafana/troubleshooting - category: Connectors / Dashboard / Lightdash url: /connectors/dashboard/lightdash - category: Connectors / Dashboard / Lightdash / Run Externally diff --git a/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/index.md b/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/index.md new file mode 100644 index 00000000000..0597e22bc26 --- /dev/null +++ b/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/index.md @@ -0,0 +1,55 @@ +--- +title: Grafana Connector | OpenMetadata Integration Guide +description: Learn how to configure and use the Grafana connector in OpenMetadata. Includes setup, authentication, metadata ingestion, and lineage. +slug: /connectors/dashboard/grafana +--- + +{% connectorDetailsHeader +name="Grafana" +stage="BETA" +platform="OpenMetadata" +availableFeatures=["Dashboards", "Charts", "Owners", "Tags", "Lineage"] +unavailableFeatures=[] +/ %} + +In this section, we provide guides and references to use the Grafana connector. + +Configure and schedule Grafana metadata and profiler workflows from the OpenMetadata UI: + +- [Requirements](#requirements) +- [Metadata Ingestion](#metadata-ingestion) + + +{% partial file="/v1.9/connectors/ingestion-modes-tiles.md" variables={yamlPath: "/connectors/dashboard/grafana/yaml"} /%} + +## Requirements + +To access the Grafana APIs and import dashboards and panels into OpenMetadata, you need a Service Account Token with sufficient permissions (Admin role is recommended) and API access enabled on your Grafana instance. + +## Metadata Ingestion + +{% partial + file="/v1.9/connectors/metadata-ingestion-ui.md" + variables={ + connector: "Grafana", + selectServicePath: "/images/v1.9/connectors/grafana/select-service.png", + addNewServicePath: "/images/v1.9/connectors/grafana/add-new-service.png", + serviceConnectionPath: "/images/v1.9/connectors/grafana/service-connection.png", +} +/%} + +{% stepsContainer %} + +{% partial file="/v1.9/connectors/test-connection.md" /%} + +{% partial file="/v1.9/connectors/dashboard/configure-ingestion.md" /%} + +{% partial file="/v1.9/connectors/ingestion-schedule-and-deploy.md" /%} + +{% /stepsContainer %} + +Enable debug logging to troubleshoot issues: + +```bash +export LOG_LEVEL=DEBUG +``` diff --git a/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/troubleshooting.md b/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/troubleshooting.md new file mode 100644 index 00000000000..3315e31496d --- /dev/null +++ b/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/troubleshooting.md @@ -0,0 +1,7 @@ +--- +title: Grafana Troubleshooting Guide | OpenMetadata Support +description: Troubleshoot Grafana connector issues related to table ingestion, schema parsing, or access errors. +slug: /connectors/database/grafana/troubleshooting +--- + +{% partial file="/v1.9/connectors/troubleshooting.md" /%} diff --git a/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/yaml.md b/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/yaml.md new file mode 100644 index 00000000000..067a6493fb4 --- /dev/null +++ b/openmetadata-docs/content/v1.9.x-SNAPSHOT/connectors/dashboard/grafana/yaml.md @@ -0,0 +1,140 @@ +--- +title: Run the Grafana Connector Externally +description: Learn to run the Grafana connector externally in OpenMetadata. Configure metadata ingestion via YAML, including Service Account Token auth, lineage, and SSL setup. +slug: /connectors/dashboard/grafana/yaml +--- + +{% connectorDetailsHeader +name="Grafana" +stage="BETA" +platform="OpenMetadata" +availableFeatures=["Dashboards", "Charts", "Owners", "Tags", "Lineage"] +unavailableFeatures=[] +/ %} + +In this section, we provide guides and references to use the Grafana connector. + +Configure and schedule Grafana metadata and profiler workflows from the OpenMetadata UI: + +- [Requirements](#requirements) +- [Metadata Ingestion](#metadata-ingestion) + +{% partial file="/v1.9/connectors/external-ingestion-deployment.md" /%} + +## Requirements + +You will need: + +- Grafana 9.0+ (Service Account Tokens) +- Service Account Token with Admin role (for full metadata extraction) +- Network access to Grafana API endpoints + +### Python Requirements + +{% partial file="/v1.9/connectors/python-requirements.md" /%} + +To run the Grafana ingestion, install: + +```bash +pip3 install "openmetadata-ingestion[grafana]" +``` + +## Metadata Ingestion + +All connectors are defined as JSON Schemas. +[Here](https://github.com/open-metadata/OpenMetadata/blob/main/openmetadata-spec/src/main/resources/json/schema/entity/services/connections/dashboard/grafanaConnection.json) +you can find the structure to create a connection to Grafana. + +In order to create and run a Metadata Ingestion workflow, we will follow +the steps to create a YAML configuration able to connect to the source, +process the Entities if needed, and reach the OpenMetadata server. + +### 1. Define the YAML Config + +This is a sample config for Grafana: + +{% codePreview %} + +{% codeInfoContainer %} + +#### Source Configuration - Service Connection + +{% codeInfo srNumber=1 %} + +**hostPort**: URL or IP address of your Grafana instance. + +{% /codeInfo %} + +{% codeInfo srNumber=2 %} + +**apiKey**: Service Account Token for authentication (format: `glsa_xxxxx`). Admin role recommended. + +{% /codeInfo %} + +{% codeInfo srNumber=3 %} + +**verifySSL**: (Optional) Whether to verify SSL certificates. Default: true + +{% /codeInfo %} + +{% codeInfo srNumber=4 %} + +**pageSize**: (Optional) Page size for Grafana API pagination. Default: 100 + +{% /codeInfo %} + +{% codeInfo srNumber=5 %} + +**includeTags**: When set to true, imports Grafana tags as OpenMetadata tags. + +{% /codeInfo %} + +#### Sink Configuration + +{% codeInfo srNumber=6 %} + +To send the metadata to OpenMetadata, specify `type: metadata-rest`. + +{% /codeInfo %} + +{% partial file="/v1.9/connectors/yaml/workflow-config-def.md" /%} + +{% /codeInfoContainer %} + +{% codeBlock fileName="grafana-workflow.yaml" %} + +```yaml {% isCodeBlock=true %} +source: + type: grafana + serviceName: local_grafana + serviceConnection: + config: + type: Grafana + hostPort: https://grafana.example.com + apiKey: glsa_xxxxxxxxxxxxxxxxxxxx + verifySSL: true + +sourceConfig: + config: + type: DashboardMetadata + includeTags: true + lineageInformation: + dbServicePrefixes: ["mysql", "postgres"] + +sink: + type: metadata-rest + config: {} + +workflowConfig: + openMetadataServerConfig: + hostPort: + authProvider: +``` + +{% /codeBlock %} + +{% /codePreview %} + +## Securing Grafana Connection with SSL in OpenMetadata + +{% partial file="/v1.9/connectors/yaml/ingestion-cli.md" /%} diff --git a/openmetadata-docs/content/v1.9.x-SNAPSHOT/menu.md b/openmetadata-docs/content/v1.9.x-SNAPSHOT/menu.md index 06fa68a2be9..7fe38dcb61a 100644 --- a/openmetadata-docs/content/v1.9.x-SNAPSHOT/menu.md +++ b/openmetadata-docs/content/v1.9.x-SNAPSHOT/menu.md @@ -517,6 +517,12 @@ site_menu: url: /connectors/dashboard/domo-dashboard/yaml - category: Connectors / Dashboard / Domo Dashboard / Troubleshooting url: /connectors/dashboard/domo-dashboard/troubleshooting + - category: Connectors / Database / Grafana + url: /connectors/dashboard/grafana + - category: Connectors / Database / Grafana / Run Externally + url: /connectors/dashboard/grafana/yaml + - category: Connectors / Database / Grafana / Troubleshooting + url: /connectors/dashboard/grafana/troubleshooting - category: Connectors / Dashboard / Lightdash url: /connectors/dashboard/lightdash - category: Connectors / Dashboard / Lightdash / Run Externally diff --git a/openmetadata-docs/images/connectors/grafana.webp b/openmetadata-docs/images/connectors/grafana.webp new file mode 100644 index 00000000000..b7fbb826b25 Binary files /dev/null and b/openmetadata-docs/images/connectors/grafana.webp differ diff --git a/openmetadata-docs/images/v1.9/connectors/grafana/add-new-service.png b/openmetadata-docs/images/v1.9/connectors/grafana/add-new-service.png new file mode 100644 index 00000000000..6745479dfeb Binary files /dev/null and b/openmetadata-docs/images/v1.9/connectors/grafana/add-new-service.png differ diff --git a/openmetadata-docs/images/v1.9/connectors/grafana/select-service.png b/openmetadata-docs/images/v1.9/connectors/grafana/select-service.png new file mode 100644 index 00000000000..254bafe72d7 Binary files /dev/null and b/openmetadata-docs/images/v1.9/connectors/grafana/select-service.png differ diff --git a/openmetadata-docs/images/v1.9/connectors/grafana/service-connection.png b/openmetadata-docs/images/v1.9/connectors/grafana/service-connection.png new file mode 100644 index 00000000000..e1a1ec04f85 Binary files /dev/null and b/openmetadata-docs/images/v1.9/connectors/grafana/service-connection.png differ