SigNoz inframonitoring API

The inframonitoring API from SigNoz — 2 operation(s) for inframonitoring.

OpenAPI Specification

signoz-inframonitoring-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  contact:
    email: support@signoz.io
    name: SigNoz Support
    url: https://signoz.io
  description: OpenTelemetry-Native Logs, Metrics and Traces in a single pane
  termsOfService: https://signoz.io/terms-of-service/
  title: SigNoz alerts inframonitoring API
  version: ''
servers:
- description: The fully qualified URL to the SigNoz APIServer.
  url: https://{host}:{port}{base_path}
  variables:
    base_path:
      default: /
      description: The base path of the SigNoz APIServer
    host:
      default: localhost
      description: The host of the SigNoz APIServer
    port:
      default: '8080'
      description: The port of the SigNoz APIServer
tags:
- name: inframonitoring
paths:
  /api/v2/infra_monitoring/hosts:
    post:
      deprecated: false
      description: 'Returns a paginated list of hosts with key infrastructure metrics: CPU usage (%), memory usage (%), I/O wait (%), disk usage (%), and 15-minute load average. Each host includes its current status (active/inactive based on metrics reported in the last 10 minutes) and metadata attributes (e.g., os.type). Supports filtering via a filter expression, filtering by host status, custom groupBy to aggregate hosts by any attribute, ordering by any of the five metrics, and pagination via offset/limit. The response type is ''list'' for the default host.name grouping or ''grouped_list'' for custom groupBy keys. Also reports missing required metrics and whether the requested time range falls before the data retention boundary. Numeric metric fields (cpu, memory, wait, load15, diskUsage) return -1 as a sentinel when no data is available for that field.'
      operationId: ListHosts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InframonitoringtypesPostableHosts'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/InframonitoringtypesHosts'
                  status:
                    type: string
                required:
                - status
                - data
                type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Internal Server Error
      security:
      - api_key:
        - VIEWER
      - tokenizer:
        - VIEWER
      summary: List Hosts for Infra Monitoring
      tags:
      - inframonitoring
  /api/v2/infra_monitoring/pods:
    post:
      deprecated: false
      description: 'Returns a paginated list of Kubernetes pods with key metrics: CPU usage, CPU request/limit utilization, memory working set, memory request/limit utilization, current pod phase (pending/running/succeeded/failed/unknown), and pod age (ms since start time). Each pod includes metadata attributes (namespace, node, workload owner such as deployment/statefulset/daemonset/job/cronjob, cluster). Supports filtering via a filter expression, custom groupBy to aggregate pods by any attribute, ordering by any of the six metrics (cpu, cpu_request, cpu_limit, memory, memory_request, memory_limit), and pagination via offset/limit. The response type is ''list'' for the default k8s.pod.uid grouping (each row is one pod with its current phase) or ''grouped_list'' for custom groupBy keys (each row aggregates pods in the group with per-phase counts: pendingPodCount, runningPodCount, succeededPodCount, failedPodCount, unknownPodCount derived from each pod''s latest phase in the window). Also reports missing required metrics and whether the requested time range falls before the data retention boundary. Numeric metric fields (podCPU, podCPURequest, podCPULimit, podMemory, podMemoryRequest, podMemoryLimit, podAge) return -1 as a sentinel when no data is available for that field.'
      operationId: ListPods
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InframonitoringtypesPostablePods'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/InframonitoringtypesPods'
                  status:
                    type: string
                required:
                - status
                - data
                type: object
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenderErrorResponse'
          description: Internal Server Error
      security:
      - api_key:
        - VIEWER
      - tokenizer:
        - VIEWER
      summary: List Pods for Infra Monitoring
      tags:
      - inframonitoring
components:
  schemas:
    InframonitoringtypesPodPhase:
      enum:
      - pending
      - running
      - succeeded
      - failed
      - unknown
      - ''
      type: string
    InframonitoringtypesHostFilter:
      properties:
        expression:
          type: string
        filterByStatus:
          $ref: '#/components/schemas/InframonitoringtypesHostStatus'
      type: object
    InframonitoringtypesPodRecord:
      properties:
        failedPodCount:
          type: integer
        meta:
          additionalProperties: {}
          nullable: true
          type: object
        pendingPodCount:
          type: integer
        podAge:
          format: int64
          type: integer
        podCPU:
          format: double
          type: number
        podCPULimit:
          format: double
          type: number
        podCPURequest:
          format: double
          type: number
        podMemory:
          format: double
          type: number
        podMemoryLimit:
          format: double
          type: number
        podMemoryRequest:
          format: double
          type: number
        podPhase:
          $ref: '#/components/schemas/InframonitoringtypesPodPhase'
        podUID:
          type: string
        runningPodCount:
          type: integer
        succeededPodCount:
          type: integer
        unknownPodCount:
          type: integer
      required:
      - podUID
      - podCPU
      - podCPURequest
      - podCPULimit
      - podMemory
      - podMemoryRequest
      - podMemoryLimit
      - podPhase
      - pendingPodCount
      - runningPodCount
      - succeededPodCount
      - failedPodCount
      - unknownPodCount
      - podAge
      - meta
      type: object
    Querybuildertypesv5OrderByKey:
      properties:
        description:
          type: string
        fieldContext:
          $ref: '#/components/schemas/TelemetrytypesFieldContext'
        fieldDataType:
          $ref: '#/components/schemas/TelemetrytypesFieldDataType'
        name:
          type: string
        signal:
          $ref: '#/components/schemas/TelemetrytypesSignal'
        unit:
          type: string
      required:
      - name
      type: object
    TelemetrytypesSignal:
      enum:
      - traces
      - logs
      - metrics
      type: string
    InframonitoringtypesRequiredMetricsCheck:
      properties:
        missingMetrics:
          items:
            type: string
          nullable: true
          type: array
      required:
      - missingMetrics
      type: object
    Querybuildertypesv5Filter:
      properties:
        expression:
          type: string
      type: object
    InframonitoringtypesResponseType:
      enum:
      - list
      - grouped_list
      type: string
    Querybuildertypesv5GroupByKey:
      properties:
        description:
          type: string
        fieldContext:
          $ref: '#/components/schemas/TelemetrytypesFieldContext'
        fieldDataType:
          $ref: '#/components/schemas/TelemetrytypesFieldDataType'
        name:
          type: string
        signal:
          $ref: '#/components/schemas/TelemetrytypesSignal'
        unit:
          type: string
      required:
      - name
      type: object
    InframonitoringtypesHostRecord:
      properties:
        activeHostCount:
          type: integer
        cpu:
          format: double
          type: number
        diskUsage:
          format: double
          type: number
        hostName:
          type: string
        inactiveHostCount:
          type: integer
        load15:
          format: double
          type: number
        memory:
          format: double
          type: number
        meta:
          additionalProperties: {}
          nullable: true
          type: object
        status:
          $ref: '#/components/schemas/InframonitoringtypesHostStatus'
        wait:
          format: double
          type: number
      required:
      - hostName
      - status
      - activeHostCount
      - inactiveHostCount
      - cpu
      - memory
      - wait
      - load15
      - diskUsage
      - meta
      type: object
    InframonitoringtypesPostableHosts:
      properties:
        end:
          format: int64
          type: integer
        filter:
          $ref: '#/components/schemas/InframonitoringtypesHostFilter'
        groupBy:
          items:
            $ref: '#/components/schemas/Querybuildertypesv5GroupByKey'
          nullable: true
          type: array
        limit:
          type: integer
        offset:
          type: integer
        orderBy:
          $ref: '#/components/schemas/Querybuildertypesv5OrderBy'
        start:
          format: int64
          type: integer
      required:
      - start
      - end
      - limit
      type: object
    InframonitoringtypesHosts:
      properties:
        endTimeBeforeRetention:
          type: boolean
        records:
          items:
            $ref: '#/components/schemas/InframonitoringtypesHostRecord'
          nullable: true
          type: array
        requiredMetricsCheck:
          $ref: '#/components/schemas/InframonitoringtypesRequiredMetricsCheck'
        total:
          type: integer
        type:
          $ref: '#/components/schemas/InframonitoringtypesResponseType'
        warning:
          $ref: '#/components/schemas/Querybuildertypesv5QueryWarnData'
      required:
      - type
      - records
      - total
      - requiredMetricsCheck
      - endTimeBeforeRetention
      type: object
    ErrorsResponseerroradditional:
      properties:
        message:
          type: string
      type: object
    Querybuildertypesv5QueryWarnData:
      properties:
        message:
          type: string
        url:
          type: string
        warnings:
          items:
            $ref: '#/components/schemas/Querybuildertypesv5QueryWarnDataAdditional'
          type: array
      type: object
    InframonitoringtypesPostablePods:
      properties:
        end:
          format: int64
          type: integer
        filter:
          $ref: '#/components/schemas/Querybuildertypesv5Filter'
        groupBy:
          items:
            $ref: '#/components/schemas/Querybuildertypesv5GroupByKey'
          nullable: true
          type: array
        limit:
          type: integer
        offset:
          type: integer
        orderBy:
          $ref: '#/components/schemas/Querybuildertypesv5OrderBy'
        start:
          format: int64
          type: integer
      required:
      - start
      - end
      - limit
      type: object
    TelemetrytypesFieldDataType:
      enum:
      - string
      - bool
      - float64
      - int64
      - number
      type: string
    Querybuildertypesv5OrderBy:
      properties:
        direction:
          $ref: '#/components/schemas/Querybuildertypesv5OrderDirection'
        key:
          $ref: '#/components/schemas/Querybuildertypesv5OrderByKey'
      type: object
    RenderErrorResponse:
      properties:
        error:
          $ref: '#/components/schemas/ErrorsJSON'
        status:
          type: string
      required:
      - status
      - error
      type: object
    InframonitoringtypesPods:
      properties:
        endTimeBeforeRetention:
          type: boolean
        records:
          items:
            $ref: '#/components/schemas/InframonitoringtypesPodRecord'
          nullable: true
          type: array
        requiredMetricsCheck:
          $ref: '#/components/schemas/InframonitoringtypesRequiredMetricsCheck'
        total:
          type: integer
        type:
          $ref: '#/components/schemas/InframonitoringtypesResponseType'
        warning:
          $ref: '#/components/schemas/Querybuildertypesv5QueryWarnData'
      required:
      - type
      - records
      - total
      - requiredMetricsCheck
      - endTimeBeforeRetention
      type: object
    ErrorsJSON:
      properties:
        code:
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorsResponseerroradditional'
          type: array
        message:
          type: string
        url:
          type: string
      required:
      - code
      - message
      type: object
    Querybuildertypesv5QueryWarnDataAdditional:
      properties:
        message:
          type: string
      type: object
    Querybuildertypesv5OrderDirection:
      enum:
      - asc
      - desc
      type: string
    TelemetrytypesFieldContext:
      enum:
      - metric
      - log
      - span
      - resource
      - attribute
      - body
      type: string
    InframonitoringtypesHostStatus:
      enum:
      - active
      - inactive
      - ''
      type: string
  securitySchemes:
    api_key:
      description: API Keys
      in: header
      name: SigNoz-Api-Key
      type: apiKey
    tokenizer:
      bearerFormat: Tokenizer
      description: Tokens generated by the tokenizer
      scheme: bearer
      type: http