From 49303b5185253fc215d697a45b3e2e5a3f630ef9 Mon Sep 17 00:00:00 2001 From: Habib Nuhu Date: Thu, 18 Dec 2025 09:53:36 +0100 Subject: [PATCH 1/2] Add Prometheus custom integration documentation - Add comprehensive Prometheus integration guide with Ocean Custom Integration - Support for alerts, rules, and targets endpoints - Include blueprints for Prometheus Alert, Rule, and Target entities - Add mappings for /api/v1/alerts, /api/v1/rules, and /api/v1/targets - Support authentication options: none, basic, and bearer token - Add Prometheus to integrations table in monitoring category - Include installation instructions for Helm and Docker --- .../apm-alerting/prometheus/_category_.json | 6 + .../apm-alerting/prometheus/prometheus.md | 568 ++++++++++++++++++ .../IntegrationsTable/integrations-data.js | 7 + 3 files changed, 581 insertions(+) create mode 100644 docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/_category_.json create mode 100644 docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/prometheus.md diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/_category_.json b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/_category_.json new file mode 100644 index 0000000000..56fe0e44df --- /dev/null +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/_category_.json @@ -0,0 +1,6 @@ +{ + "label": "Prometheus", + "position": 5, + "className": "custom-integration" +} + diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/prometheus.md b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/prometheus.md new file mode 100644 index 0000000000..d66d8ee3c6 --- /dev/null +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus/prometheus.md @@ -0,0 +1,568 @@ +import Tabs from "@theme/Tabs" +import TabItem from "@theme/TabItem" +import Prerequisites from "/docs/build-your-software-catalog/sync-data-to-catalog/templates/_ocean_helm_prerequisites_block.mdx" +import AdvancedConfig from '/docs/generalTemplates/_ocean_advanced_configuration_note.md' +import PortApiRegionTip from "/docs/generalTemplates/_port_region_parameter_explanation_template.md" +import CustomOceanIntegration from "/docs/build-your-software-catalog/sync-data-to-catalog/templates/_custom_ocean_integration.mdx" + +# Prometheus + + + +Port's Prometheus integration allows you to ingest Prometheus monitoring and alerting data into your software catalog using the [Ocean Custom Integration](/build-your-software-catalog/custom-integration/ocean-custom-integration/overview) framework. After installing this integration, you can visualize your Prometheus alerts, alerting rules, and scrape targets using Port's dashboards. + +## Supported resources + +The Prometheus integration can ingest the following resources into Port. It is possible to reference any field that appears in the API responses in the mapping configuration. For detailed API documentation, see the [Prometheus HTTP API documentation](https://prometheus.io/docs/prometheus/latest/querying/api/). + +- **Alerts** - Active alerts from [`/api/v1/alerts`](https://prometheus.io/docs/prometheus/latest/querying/api/#getting-alerts). +- **Rules** - Alerting and recording rules from [`/api/v1/rules`](https://prometheus.io/docs/prometheus/latest/querying/api/#rules). +- **Targets** - Scrape targets and their health status from [`/api/v1/targets`](https://prometheus.io/docs/prometheus/latest/querying/api/#targets). + +## Prerequisites + +To use this integration, you need: + +- A Prometheus instance accessible via HTTP/HTTPS. +- Network access to the Prometheus API endpoints. +- If authentication is enabled, appropriate credentials (API token, username/password, or bearer token). + +**Prometheus authentication:** + +Prometheus does not require authentication by default. However, if your Prometheus instance has authentication enabled, you can use: + +- **Basic Authentication** - Username and password. +- **Bearer Token** - API token in the Authorization header. +- **No Authentication** - If authentication is disabled (default). + +## Installation + +Choose one of the following installation methods to deploy the Ocean Custom Integration: + + + + + +

Prerequisites

+ + + +

Installation

+ +Add Port's Helm repo and install the Ocean Custom Integration: + +:::note Replace placeholders +Remember to replace the placeholders for `YOUR_PORT_CLIENT_ID`, `YOUR_PORT_CLIENT_SECRET`, and your Prometheus base URL. If authentication is enabled, also replace `YOUR_PROMETHEUS_USERNAME` and `YOUR_PROMETHEUS_PASSWORD` (or use bearer token). +::: + +**Without authentication:** + +```bash showLineNumbers +helm repo add --force-update port-labs https://port-labs.github.io/helm-charts +helm upgrade --install my-ocean-prometheus-integration port-labs/port-ocean \ + --set port.clientId="YOUR_PORT_CLIENT_ID" \ + --set port.clientSecret="YOUR_PORT_CLIENT_SECRET" \ + --set port.baseUrl="https://api.getport.io" \ + --set initializePortResources=false \ + --set scheduledResyncInterval=120 \ + --set integration.identifier="prometheus-integration" \ + --set integration.type="custom" \ + --set integration.eventListener.type="POLLING" \ + --set integration.config.baseUrl="http://prometheus:9090" \ + --set integration.config.authType="none" +``` + +**With basic authentication:** + +```bash showLineNumbers +helm repo add --force-update port-labs https://port-labs.github.io/helm-charts +helm upgrade --install my-ocean-prometheus-integration port-labs/port-ocean \ + --set port.clientId="YOUR_PORT_CLIENT_ID" \ + --set port.clientSecret="YOUR_PORT_CLIENT_SECRET" \ + --set port.baseUrl="https://api.getport.io" \ + --set initializePortResources=false \ + --set scheduledResyncInterval=120 \ + --set integration.identifier="prometheus-integration" \ + --set integration.type="custom" \ + --set integration.eventListener.type="POLLING" \ + --set integration.config.baseUrl="http://prometheus:9090" \ + --set integration.config.authType="basic" \ + --set integration.config.username="YOUR_PROMETHEUS_USERNAME" \ + --set integration.config.password="YOUR_PROMETHEUS_PASSWORD" +``` + +**With bearer token:** + +```bash showLineNumbers +helm repo add --force-update port-labs https://port-labs.github.io/helm-charts +helm upgrade --install my-ocean-prometheus-integration port-labs/port-ocean \ + --set port.clientId="YOUR_PORT_CLIENT_ID" \ + --set port.clientSecret="YOUR_PORT_CLIENT_SECRET" \ + --set port.baseUrl="https://api.getport.io" \ + --set initializePortResources=false \ + --set scheduledResyncInterval=120 \ + --set integration.identifier="prometheus-integration" \ + --set integration.type="custom" \ + --set integration.eventListener.type="POLLING" \ + --set integration.config.baseUrl="http://prometheus:9090" \ + --set integration.config.authType="bearer_token" \ + --set integration.config.apiToken="YOUR_PROMETHEUS_BEARER_TOKEN" +``` + + + +

Configuration parameters

+ +This table summarizes the available parameters for the installation. + +| Parameter | Description | Example | Required | +| --- | --- | --- | --- | +| `port.clientId` | Your Port [client id](https://docs.port.io/build-your-software-catalog/custom-integration/api/#find-your-port-credentials). | | ✅ | +| `port.clientSecret` | Your Port [client secret](https://docs.port.io/build-your-software-catalog/custom-integration/api/#find-your-port-credentials). | | ✅ | +| `port.baseUrl` | Your Port API URL (`https://api.getport.io` for EU, `https://api.us.getport.io` for US). | | ✅ | +| `integration.config.baseUrl` | Base URL of your Prometheus instance. | http://prometheus:9090 | ✅ | +| `integration.config.authType` | Authentication type (`none`, `basic`, or `bearer_token`). | none | ✅ | +| `integration.config.username` | Username for basic authentication (required if `authType` is `basic`). | | ❌ | +| `integration.config.password` | Password for basic authentication (required if `authType` is `basic`). | | ❌ | +| `integration.config.apiToken` | Bearer token for authentication (required if `authType` is `bearer_token`). | | ❌ | +| `integration.eventListener.type` | Event listener type. See [event listeners](https://ocean.getport.io/framework/features/event-listener). | POLLING | ✅ | +| `integration.type` | Integration type (must be `custom`). | custom | ✅ | +| `integration.identifier` | Unique identifier for the integration instance. | prometheus-integration | ✅ | +| `scheduledResyncInterval` | Minutes between scheduled syncs. When omitted, the event listener interval is used. | 120 | ❌ | +| `initializePortResources` | When true, creates default blueprints and mappings on first run. Set to `false` when using custom blueprints. | false | ❌ | +| `sendRawDataExamples` | Sends sample payloads from the API to Port for easier mapping. | true | ❌ | + +
+ + + +
+ + + +To run the integration using Docker for a one-time sync: + +:::note Replace placeholders +Remember to replace the placeholders for `YOUR_PORT_CLIENT_ID`, `YOUR_PORT_CLIENT_SECRET`, and your Prometheus base URL. If authentication is enabled, also replace the authentication credentials. +::: + +**Without authentication:** + +```bash showLineNumbers +docker run -i --rm --platform=linux/amd64 \ + -e OCEAN__EVENT_LISTENER='{"type":"ONCE"}' \ + -e OCEAN__INITIALIZE_PORT_RESOURCES=false \ + -e OCEAN__SEND_RAW_DATA_EXAMPLES=true \ + -e OCEAN__INTEGRATION__IDENTIFIER="prometheus-integration" \ + -e OCEAN__INTEGRATION__CONFIG__BASE_URL="http://prometheus:9090" \ + -e OCEAN__INTEGRATION__CONFIG__AUTH_TYPE="none" \ + -e OCEAN__PORT__CLIENT_ID="YOUR_PORT_CLIENT_ID" \ + -e OCEAN__PORT__CLIENT_SECRET="YOUR_PORT_CLIENT_SECRET" \ + -e OCEAN__PORT__BASE_URL="https://api.getport.io" \ + ghcr.io/port-labs/port-ocean-custom:latest +``` + +**With basic authentication:** + +```bash showLineNumbers +docker run -i --rm --platform=linux/amd64 \ + -e OCEAN__EVENT_LISTENER='{"type":"ONCE"}' \ + -e OCEAN__INITIALIZE_PORT_RESOURCES=false \ + -e OCEAN__SEND_RAW_DATA_EXAMPLES=true \ + -e OCEAN__INTEGRATION__IDENTIFIER="prometheus-integration" \ + -e OCEAN__INTEGRATION__CONFIG__BASE_URL="http://prometheus:9090" \ + -e OCEAN__INTEGRATION__CONFIG__AUTH_TYPE="basic" \ + -e OCEAN__INTEGRATION__CONFIG__USERNAME="YOUR_PROMETHEUS_USERNAME" \ + -e OCEAN__INTEGRATION__CONFIG__PASSWORD="YOUR_PROMETHEUS_PASSWORD" \ + -e OCEAN__PORT__CLIENT_ID="YOUR_PORT_CLIENT_ID" \ + -e OCEAN__PORT__CLIENT_SECRET="YOUR_PORT_CLIENT_SECRET" \ + -e OCEAN__PORT__BASE_URL="https://api.getport.io" \ + ghcr.io/port-labs/port-ocean-custom:latest +``` + +**With bearer token:** + +```bash showLineNumbers +docker run -i --rm --platform=linux/amd64 \ + -e OCEAN__EVENT_LISTENER='{"type":"ONCE"}' \ + -e OCEAN__INITIALIZE_PORT_RESOURCES=false \ + -e OCEAN__SEND_RAW_DATA_EXAMPLES=true \ + -e OCEAN__INTEGRATION__IDENTIFIER="prometheus-integration" \ + -e OCEAN__INTEGRATION__CONFIG__BASE_URL="http://prometheus:9090" \ + -e OCEAN__INTEGRATION__CONFIG__AUTH_TYPE="bearer_token" \ + -e OCEAN__INTEGRATION__CONFIG__API_TOKEN="YOUR_PROMETHEUS_BEARER_TOKEN" \ + -e OCEAN__PORT__CLIENT_ID="YOUR_PORT_CLIENT_ID" \ + -e OCEAN__PORT__CLIENT_SECRET="YOUR_PORT_CLIENT_SECRET" \ + -e OCEAN__PORT__BASE_URL="https://api.getport.io" \ + ghcr.io/port-labs/port-ocean-custom:latest +``` + + + + + + + +
+ +## Set up data model + +Before the integration can sync data, you need to create the required blueprints in Port. These blueprints define the data model for your Prometheus resources. + +**To create the blueprints:** + +1. Go to your [Builder page](https://app.getport.io/settings/data-model). + +2. Click on the `+ Blueprint` button. + +3. Copy and paste each blueprint JSON from the sections below. + +
+ Prometheus Alert Blueprint (Click to expand) + + Active alerts from Prometheus: + + ```json showLineNumbers + { + "identifier": "prometheus-alert", + "title": "Prometheus Alert", + "icon": "Prometheus", + "schema": { + "properties": { + "alertname": { + "title": "Alert Name", + "type": "string" + }, + "state": { + "title": "State", + "type": "string" + }, + "severity": { + "title": "Severity", + "type": "string" + }, + "summary": { + "title": "Summary", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + }, + "activeAt": { + "title": "Active At", + "type": "string", + "format": "date-time" + }, + "labels": { + "title": "Labels", + "type": "object" + }, + "annotations": { + "title": "Annotations", + "type": "object" + }, + "value": { + "title": "Value", + "type": "string" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": {} + } + ``` + +
+ +
+ Prometheus Rule Blueprint (Click to expand) + + Alerting and recording rules: + + ```json showLineNumbers + { + "identifier": "prometheus-rule", + "title": "Prometheus Rule", + "icon": "Prometheus", + "schema": { + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "type": { + "title": "Type", + "type": "string" + }, + "query": { + "title": "Query", + "type": "string" + }, + "duration": { + "title": "Duration", + "type": "string" + }, + "labels": { + "title": "Labels", + "type": "object" + }, + "annotations": { + "title": "Annotations", + "type": "object" + }, + "health": { + "title": "Health", + "type": "string" + }, + "lastError": { + "title": "Last Error", + "type": "string" + }, + "evaluationTime": { + "title": "Evaluation Time", + "type": "number" + }, + "lastEvaluation": { + "title": "Last Evaluation", + "type": "string", + "format": "date-time" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": {} + } + ``` + +
+ +
+ Prometheus Target Blueprint (Click to expand) + + Scrape targets and their health status: + + ```json showLineNumbers + { + "identifier": "prometheus-target", + "title": "Prometheus Target", + "icon": "Prometheus", + "schema": { + "properties": { + "scrapePool": { + "title": "Scrape Pool", + "type": "string" + }, + "scrapeUrl": { + "title": "Scrape URL", + "type": "string", + "format": "url" + }, + "health": { + "title": "Health", + "type": "string" + }, + "lastError": { + "title": "Last Error", + "type": "string" + }, + "lastScrape": { + "title": "Last Scrape", + "type": "string", + "format": "date-time" + }, + "lastScrapeDuration": { + "title": "Last Scrape Duration", + "type": "number" + }, + "labels": { + "title": "Labels", + "type": "object" + } + }, + "required": [] + }, + "mirrorProperties": {}, + "calculationProperties": {}, + "aggregationProperties": {}, + "relations": {} + } + ``` + +
+ +## Configuration + +After installation, define which endpoints to sync in your integration configuration. Each resource maps an API endpoint to Port entities using [JQ expressions](https://stedolan.github.io/jq/manual/) to transform the data. + +**Key mapping components:** +- **`kind`**: The API endpoint path (combined with your base URL). +- **`selector.query`**: JQ filter to include/exclude entities (use `'true'` to sync all). +- **`selector.data_path`**: JQ expression pointing to the array of items in the response. +- **`port.entity.mappings`**: How to map API fields to Port entity properties. + +For more details on how the Ocean Custom Integration works, see the [How it works](https://docs.port.io/build-your-software-catalog/custom-integration/ocean-custom-integration/overview#how-it-works) section in the custom integration overview. + +**Prometheus API response format:** + +Prometheus API responses follow this structure: + +```json showLineNumbers +{ + "status": "success", + "data": { + "alerts": [ + { + "labels": { + "alertname": "HighCPUUsage", + "severity": "warning" + }, + "annotations": { + "summary": "CPU usage is above 80%" + }, + "state": "firing", + "activeAt": "2024-01-15T10:30:00Z", + "value": "85.5" + } + ] + } +} +``` + +The actual data array is typically nested under `.data.alerts`, `.data.groups` (for rules), or `.data.activeTargets` (for targets). + +**To configure the mappings:** + +1. Go to your [data sources page](https://app.getport.io/settings/data-sources). + +2. Find your Prometheus integration in the list. + +3. Click on the integration to open the mapping editor. + +4. Add the resource mapping configurations below. + +
+ Alerts mapping (Click to expand) + + Active alerts from `/api/v1/alerts`: + + ```yaml showLineNumbers + resources: + - kind: /api/v1/alerts + selector: + query: 'true' + data_path: '.data.alerts' + port: + entity: + mappings: + identifier: '"\(.labels.alertname)-\(.activeAt)"' + title: .labels.alertname + blueprint: '"prometheus-alert"' + properties: + alertname: .labels.alertname + state: .state + severity: (.labels.severity // "unknown") + summary: (.annotations.summary // "") + description: (.annotations.description // "") + activeAt: .activeAt + labels: .labels + annotations: .annotations + value: (.value // "") + ``` + + :::info Composite identifier + The identifier uses a composite of `alertname` and `activeAt` to ensure uniqueness, as the same alert can fire multiple times. This prevents alerts from overwriting each other. + ::: + +
+ +
+ Rules mapping (Click to expand) + + Alerting and recording rules from `/api/v1/rules`: + + ```yaml showLineNumbers + resources: + - kind: /api/v1/rules + selector: + query: 'true' + data_path: '.data.groups[].rules[]' + port: + entity: + mappings: + identifier: .name + title: .name + blueprint: '"prometheus-rule"' + properties: + name: .name + type: .type + query: .query + duration: (.duration // "") + labels: (.labels // {}) + annotations: (.annotations // {}) + health: .health + lastError: (.lastError // "") + evaluationTime: (.evaluationTime // 0) + lastEvaluation: .lastEvaluation + ``` + + :::info Rules structure + The `/api/v1/rules` endpoint returns rules grouped by rule group. The mapping uses `.data.groups[].rules[]` to flatten all rules from all groups into a single array. + ::: + +
+ +
+ Targets mapping (Click to expand) + + Scrape targets from `/api/v1/targets`: + + ```yaml showLineNumbers + resources: + - kind: /api/v1/targets + selector: + query: 'true' + data_path: '.data.activeTargets[]' + port: + entity: + mappings: + identifier: .scrapeUrl + title: (.labels.job // .scrapeUrl) + blueprint: '"prometheus-target"' + properties: + scrapePool: .scrapePool + scrapeUrl: .scrapeUrl + health: .health + lastError: (.lastError // "") + lastScrape: .lastScrape + lastScrapeDuration: (.lastScrapeDuration // 0) + labels: .labels + ``` + + :::info Targets structure + The `/api/v1/targets` endpoint returns both `activeTargets` and `droppedTargets`. This mapping only includes active targets. You can add a separate mapping for dropped targets if needed. + ::: + +
+ +5. Click `Save` to save the mapping. + +## Customization + +If you want to customize your setup or test different API endpoints before committing to a configuration, use the [interactive builder](/build-your-software-catalog/custom-integration/ocean-custom-integration/build-your-integration). + +**The interactive builder helps you:** +1. Test your Prometheus API endpoints with live data. +2. Automatically detect the data structure and field types. +3. Generate blueprints and resource mappings tailored to your preferences. +4. Get installation commands with your configuration pre-filled. + +Simply provide your Prometheus API details, and the builder will generate everything you need to install and create the integration in Port. + + diff --git a/src/components/IntegrationsTable/integrations-data.js b/src/components/IntegrationsTable/integrations-data.js index e4ce07fe9c..189a607f11 100644 --- a/src/components/IntegrationsTable/integrations-data.js +++ b/src/components/IntegrationsTable/integrations-data.js @@ -163,6 +163,13 @@ export const integrations = [ darkIcon: '/img/guides/icons/dark/Sentry.svg', docsUrl: '/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry', }, + { + name: 'Prometheus', + category: 'monitoring', + icon: '/img/guides/icons/Security.svg', + darkIcon: '/img/guides/icons/Security.svg', + docsUrl: '/build-your-software-catalog/sync-data-to-catalog/apm-alerting/prometheus', + }, // Security & Quality { name: 'Snyk', From c6a12259a2028c07885f037ace2fd9d8458da222 Mon Sep 17 00:00:00 2001 From: Habib Nuhu Date: Thu, 18 Dec 2025 18:11:43 +0100 Subject: [PATCH 2/2] Moved Prometheus to last position added categories for newrelic and sentry --- .../apm-alerting/datadog/_category_.json | 1 + .../apm-alerting/dynatrace/_category_.json | 1 + .../apm-alerting/newrelic/_category_.json | 5 +++++ .../{ => newrelic}/_newrelic-docker-parameters.mdx | 0 .../apm-alerting/{ => newrelic}/newrelic.md | 6 +++--- .../apm-alerting/sentry/_category_.json | 5 +++++ .../apm-alerting/{ => sentry}/_sentry-docker-parameters.mdx | 0 .../apm-alerting/{ => sentry}/sentry.md | 6 +++--- 8 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/_category_.json rename docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/{ => newrelic}/_newrelic-docker-parameters.mdx (100%) rename docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/{ => newrelic}/newrelic.md (99%) create mode 100644 docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/_category_.json rename docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/{ => sentry}/_sentry-docker-parameters.mdx (100%) rename docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/{ => sentry}/sentry.md (99%) diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/datadog/_category_.json b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/datadog/_category_.json index b9b0b550aa..77023bb6a0 100644 --- a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/datadog/_category_.json +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/datadog/_category_.json @@ -1,3 +1,4 @@ { + "position": 1, "label": "Datadog" } diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/dynatrace/_category_.json b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/dynatrace/_category_.json index f3d42c5535..2ee9d8c5b4 100644 --- a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/dynatrace/_category_.json +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/dynatrace/_category_.json @@ -1,3 +1,4 @@ { + "position": 2, "label": "Dynatrace" } diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/_category_.json b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/_category_.json new file mode 100644 index 0000000000..f754cb8505 --- /dev/null +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "New Relic", + "position": 3 +} + diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/_newrelic-docker-parameters.mdx b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/_newrelic-docker-parameters.mdx similarity index 100% rename from docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/_newrelic-docker-parameters.mdx rename to docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/_newrelic-docker-parameters.mdx diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic.md b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/newrelic.md similarity index 99% rename from docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic.md rename to docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/newrelic.md index bba070bca5..69d6a96caa 100644 --- a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic.md +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/newrelic/newrelic.md @@ -1,9 +1,9 @@ import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" -import Prerequisites from "../templates/\_ocean_helm_prerequisites_block.mdx" +import Prerequisites from "../../templates/\_ocean_helm_prerequisites_block.mdx" import DockerParameters from "./\_newrelic-docker-parameters.mdx" -import AzurePremise from "../templates/\_ocean_azure_premise.mdx" -import AdvancedConfig from '../../../generalTemplates/_ocean_advanced_configuration_note.md' +import AzurePremise from "../../templates/\_ocean_azure_premise.mdx" +import AdvancedConfig from '../../../../generalTemplates/_ocean_advanced_configuration_note.md' import PortApiRegionTip from "/docs/generalTemplates/_port_region_parameter_explanation_template.md" import OceanSaasInstallation from "/docs/build-your-software-catalog/sync-data-to-catalog/templates/_ocean_saas_installation.mdx" import OceanRealtimeInstallation from "/docs/build-your-software-catalog/sync-data-to-catalog/templates/_ocean_realtime_installation.mdx" diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/_category_.json b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/_category_.json new file mode 100644 index 0000000000..c721c8e300 --- /dev/null +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Sentry", + "position": 4 +} + diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/_sentry-docker-parameters.mdx b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/_sentry-docker-parameters.mdx similarity index 100% rename from docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/_sentry-docker-parameters.mdx rename to docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/_sentry-docker-parameters.mdx diff --git a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry.md b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/sentry.md similarity index 99% rename from docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry.md rename to docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/sentry.md index d220212124..8b81d016d3 100644 --- a/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry.md +++ b/docs/build-your-software-catalog/sync-data-to-catalog/apm-alerting/sentry/sentry.md @@ -1,9 +1,9 @@ import Tabs from "@theme/Tabs" import TabItem from "@theme/TabItem" -import Prerequisites from "../templates/\_ocean_helm_prerequisites_block.mdx" -import AzurePremise from "../templates/\_ocean_azure_premise.mdx" +import Prerequisites from "../../templates/\_ocean_helm_prerequisites_block.mdx" +import AzurePremise from "../../templates/\_ocean_azure_premise.mdx" import DockerParameters from "./\_sentry-docker-parameters.mdx" -import AdvancedConfig from '../../../generalTemplates/\_ocean_advanced_configuration_note.md' +import AdvancedConfig from '../../../../generalTemplates/\_ocean_advanced_configuration_note.md' import SentryCommentsBlueprint from "/docs/build-your-software-catalog/custom-integration/webhook/examples/resources/sentry/\_example_sentry_comments_blueprint.mdx"; import SentryCommentsConfiguration from "/docs/build-your-software-catalog/custom-integration/webhook/examples/resources/sentry/\_example_sentry_comment_webhook_configuration.mdx" import SentryIssuesBluePrint from "/docs/build-your-software-catalog/custom-integration/webhook/examples/resources/sentry/\_example_sentry_issue_event_blueprint.mdx"