Logz.io · Arazzo Workflow

Logz.io Grafana Dashboard In New Folder

Version 1.0.0

Create a Grafana folder, save a dashboard into it, and read it back by uid.

1 workflow 1 source API 1 provider
View Spec View on GitHub ObservabilityLoggingMetricsTracingSIEMELKElasticsearchOpenSearchPrometheusGrafanaOpenTelemetryAIOpsCloud ObservabilityManaged ELKCost ManagementArazzoWorkflows

Provider

logz-io

Workflows

dashboard-in-folder
Create a folder, create a dashboard in it, and fetch the dashboard.
Creates a Grafana folder, saves a dashboard into that folder, and retrieves the dashboard by uid.
3 steps inputs: apiToken, dashboardTitle, folderTitle outputs: dashboardUid, folderUid
1
createFolder
createNewGrafanaFolder
Create a Grafana folder to hold the new dashboard, capturing the folder id and uid.
2
createDashboard
createDashboard
Save a new dashboard into the folder created above. The dashboard id is null so a new dashboard is created, and folderUid targets the new folder.
3
getDashboard
getDashboarById
Retrieve the saved dashboard by its uid to confirm it persisted in the new folder.

Source API Descriptions

Arazzo Workflow Specification

logz-io-dashboard-in-folder-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Logz.io Grafana Dashboard In New Folder
  summary: Create a Grafana folder, save a dashboard into it, and read it back by uid.
  description: >-
    Organizes a new Grafana dashboard under a freshly created folder. The
    workflow creates a folder, captures its id and uid, saves a dashboard into
    that folder, then retrieves the dashboard by its uid to confirm it
    persisted. Every step spells out its request inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: logzioApi
  url: ../openapi/logz-io-api-openapi.yml
  type: openapi
workflows:
- workflowId: dashboard-in-folder
  summary: Create a folder, create a dashboard in it, and fetch the dashboard.
  description: >-
    Creates a Grafana folder, saves a dashboard into that folder, and retrieves
    the dashboard by uid.
  inputs:
    type: object
    required:
    - apiToken
    - folderTitle
    - dashboardTitle
    properties:
      apiToken:
        type: string
        description: Logz.io API token sent in the X-API-TOKEN header.
      folderTitle:
        type: string
        description: Title for the new Grafana folder.
      dashboardTitle:
        type: string
        description: Title for the new Grafana dashboard.
  steps:
  - stepId: createFolder
    description: >-
      Create a Grafana folder to hold the new dashboard, capturing the folder id
      and uid.
    operationId: createNewGrafanaFolder
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        title: $inputs.folderTitle
        overwrite: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      folderId: $response.body#/id
      folderUid: $response.body#/uid
  - stepId: createDashboard
    description: >-
      Save a new dashboard into the folder created above. The dashboard id is
      null so a new dashboard is created, and folderUid targets the new folder.
    operationId: createDashboard
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        dashboard:
          id: null
          title: $inputs.dashboardTitle
          schemaVersion: 1
          version: 0
        folderUid: $steps.createFolder.outputs.folderUid
        message: Created by the Arazzo dashboard-in-folder workflow.
        overwrite: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      dashboardUid: $response.body#/uid
      dashboardUrl: $response.body#/url
  - stepId: getDashboard
    description: >-
      Retrieve the saved dashboard by its uid to confirm it persisted in the new
      folder.
    operationId: getDashboarById
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    - name: uid
      in: path
      value: $steps.createDashboard.outputs.dashboardUid
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      folderUid: $response.body#/meta/folderUid
  outputs:
    folderUid: $steps.createFolder.outputs.folderUid
    dashboardUid: $steps.createDashboard.outputs.dashboardUid