openapi: 3.1.0 info: version: 1.3.1 title: Metrics API description: This API enables you to create metrics and manage metrics policies. termsOfService: 'https://www.moogsoft.com/legal-information/express-terms-conditions/' contact: name: API Support url: 'https://docs.moogsoft.com/en/moogsoft-apis.html' email: support@moogsoft.com license: url: 'https://www.moogsoft.com/legal-information' name: Apex AIOps Incident Management Proprietary servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' paths: '/v1/integrations/metrics-policies/{id}': patch: tags: - policies summary: Patch an existing policy description: |- Update an existing metric algorithm policy NOTE: This is Pre-Release and may not be available for you at this time operationId: updatePolicy parameters: - name: id in: path description: The unique id of the policy required: true schema: type: string requestBody: description: The metric policy to update required: true content: application/json: schema: $ref: '#/components/schemas/AlgorithmPolicyDto' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MoogResponseAlgorithmPolicyDto' '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:edit' description: Required user permissions for this endpoint get: tags: - policies summary: Get a specific policy by its id description: |- Gets a specific metric policy NOTE: This is Pre-Release and may not be available for you at this time operationId: getPolicy parameters: - name: id in: path description: The unique id of the policy required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MoogResponseAlgorithmPolicyDto' '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:view' description: Required user permissions for this endpoint delete: tags: - policies summary: Delete an existing policy description: |- Delete an existing metric algorithm policy NOTE: This is Pre-Release and may not be available for you at this time operationId: deletePolicy parameters: - name: id in: path description: The unique id of the policy required: true schema: type: string responses: '204': description: No Content '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:edit' description: Required user permissions for this endpoint /v1/integrations/metrics/telegraf-json: post: tags: - metrics summary: Process metrics from the Telegraf JSON format description: 'Will accept a batch of metrics per the Telegraf JSON format here: https://docs.influxdata.com/telegraf/v1.19/data_formats/output/json/' operationId: postTelegrafMetric requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TelegrafMetricsDto' responses: '202': description: Metric(s) accepted content: application/json: schema: $ref: '#/components/schemas/MoogResponse' '400': description: Bad Request '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: [] description: Required user permissions for this endpoint /v1/integrations/metrics-policies: patch: tags: - policies summary: Patch existing policies description: |- Update existing metric algorithm policies NOTE: This is Pre-Release and may not be available for you at this time operationId: updatePolicies requestBody: description: The metric policy to update required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/AlgorithmPolicyDto' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MoogResponseListOfAlgorithmPolicyDto' '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:edit' description: Required user permissions for this endpoint get: tags: - policies summary: Get the metric policies description: |- Gets the metric policies NOTE: This is Pre-Release and may not be available for you at this time operationId: getPolicies parameters: - name: limit in: query description: The maximum number of items to return schema: type: integer format: int32 minimum: 1 maximum: 100 default: 10 - name: offset in: query description: The starting offset of items to return schema: type: integer format: int32 minimum: 0 default: 0 - name: sortBy in: query description: Sort property schema: type: string default: priority - name: sortOrder in: query description: Sort order schema: allOf: - $ref: '#/components/schemas/SortOrder' - default: asc responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MoogResponseGetPolicyListResponseDto' '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:view' description: Required user permissions for this endpoint post: tags: - policies summary: Create a new policy description: |- Create a new metric algorithm policy NOTE: This is Pre-Release and may not be available for you at this time operationId: createPolicy requestBody: description: The metric policy to create required: true content: application/json: schema: $ref: '#/components/schemas/AlgorithmPolicyDto' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MoogResponseAlgorithmPolicyDto' '400': description: Bad Request '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:edit' description: Required user permissions for this endpoint /v1/integrations/metrics-policies/search: post: tags: - policies summary: Search for policies that apply to a given time series description: |- Find current policies that apply to a given time series NOTE: This is Pre-Release and may not be available for you at this time operationId: searchPolicies requestBody: description: The metric policy to search required: true content: application/json: schema: $ref: '#/components/schemas/MetricKeyDto' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MoogResponseListOfAlgorithmPolicyDto' '400': description: Bad Request '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:view' description: Required user permissions for this endpoint /v1/integrations/metrics/prometheus-remote-write: post: tags: - metrics summary: Prometheus remote-write description: Accept one or more metrics via Prometheus remote-write protocol operationId: postPromRemoteWriteMetric parameters: - name: Content-Encoding in: header schema: type: string - name: X-Prometheus-Remote-Write-Version in: header schema: type: string - name: fqm-override in: query schema: type: string default: 'moog:integration:prometheus' requestBody: required: true content: application/x-protobuf: schema: type: string contentMediaType: application/octet-stream responses: '200': description: Metric(s) accepted content: application/x-protobuf: {} '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: [] description: Required user permissions for this endpoint /v1/integrations/metrics: post: tags: - metrics summary: Create one or more metrics description: Creates a single metric or a list of metrics operationId: postMetric requestBody: required: true content: application/json: schema: type: array minItems: 1 items: $ref: '#/components/schemas/WebMetricDto' responses: '202': description: Metric(s) accepted content: application/json: schema: $ref: '#/components/schemas/MoogResponse' '400': description: Bad Request '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' /v1/integrations/metrics-policies/priority: patch: tags: - policies summary: Modifies the priority for multiple policies. description: |- Modifies the priority for multiple policies. NOTE: This is Pre-Release and may not be available for you at this time operationId: setPolicyPriorities requestBody: required: true content: application/json: schema: type: array minItems: 1 uniqueItems: true items: $ref: '#/components/schemas/AlgorithmPolicyPriorityDto' responses: '204': description: No Content '400': description: Invalid parameters or data validation violation content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' '404': description: Requested object(s) not found content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 4XX: description: Authorization or other error content: application/json: schema: $ref: '#/components/schemas/MoogFailureResponse' 5XX: description: Error content: application/json: schema: $ref: '#/components/schemas/MoogErrorResponse' security: - ApiKeyAuth: [] servers: - url: 'https://api.moogsoft.ai' - url: 'https://api.dev.moogsoft.cloud' x-permissions: value: - 'metric-policies:edit' description: Required user permissions for this endpoint tags: - name: metrics description: Metrics Generation for Moogsoft Cloud - name: policies description: |- Metric Policy management for Moogsoft Cloud NOTE: This is Pre-Release and may not be available for you at this time externalDocs: url: 'https://docs.moogsoft.com/en/moogsoft-apis.html' description: Find out more about Apex AIOps Incident Management components: securitySchemes: ApiKeyAuth: type: apiKey description: API Key for accessing Metrics API name: apiKey in: header schemas: AlgorithmPolicyDto: type: object title: Algorithm Policy Dto description: Policy definition for Algorithmic Detectors properties: id: type: string description: Unique immutable id of this policy readOnly: true created: $ref: '#/components/schemas/Instant' description: Date/time of policy creation last_updated: $ref: '#/components/schemas/Instant' description: Date/time of last update to this policy created_by: type: string description: User who created this policy readOnly: true last_updated_by: type: string description: User who last updated this policy readOnly: true name: type: string description: Unique name of this policy description: type: string description: Description of this policy enabled: type: boolean description: Boolean indicating whether this policy is enabled default: true scope_filter: type: string description: MoogQL query string for policy matching priority: type: integer description: 'Relative priority of this policy, processed in increasing numeric order' format: int32 default: Next numeric value default_policy: type: boolean description: Boolean indicating whether the policy is a default MOC policy. Default policies cannot be deleted readOnly: true metric_strategy: $ref: '#/components/schemas/MetricStrategy' description: 'Enum indicating whether the policy will store metrics and perform anomaly detection, only store metrics, or drop metrics' first_match: type: boolean description: Boolean indicating whether to stop processing when this policy matches default: true anomaly_template: type: string description: Template to use for generating anomaly description recovery_template: type: string description: Template to use for generating recovery description properties: $ref: '#/components/schemas/BaseAlgorithmProperties' description: Algorithm-specific properties metrics: $ref: '#/components/schemas/PolicyMetrics' description: Metrics for this policy required: - properties Instant: type: number title: Instant format: int64 examples: - '2022-03-10T16:15:50Z' MetricStrategy: type: string enum: - DROP - STORE_ONLY - DETECT_AND_STORE title: Metric Strategy BaseAlgorithmProperties: type: object title: Base Algorithm Properties properties: type: $ref: '#/components/schemas/AlgorithmType' description: Algorithm to be used with this policy hold_for: type: integer description: Number of consecutive anomalies before generating a failure event format: int32 minimum: 0 default: 1 reset_hold_for: type: integer description: Number of consecutive resets before generating a restore event format: int32 minimum: 0 default: 1 stateful: type: boolean description: Boolean indicating whether the algorithm is stateful default: true AlgorithmType: type: string enum: - adaptive - threshold - boolean title: Algorithm Type description: Anomaly Algorithm Type PolicyMetrics: type: object title: Policy Metrics description: Metrics tracked on a per-Policy basis properties: last_updated: $ref: '#/components/schemas/Instant' description: Date/time of last update to the metrics num_metrics_matched: type: integer description: Number of metrics that match the policy's MoogQL query string format: int64 readOnly: true num_anomalies_created: type: integer description: Number of anomalies generated against the policy format: int64 readOnly: true MoogResponseAlgorithmPolicyDto: type: object title: Moog Response Algorithm Policy Dto description: Metrics API AlgorithmPolicyDto response body properties: status: type: string description: Success status indicator (always "success") examples: - success data: $ref: '#/components/schemas/AlgorithmPolicyDto' required: - status - data MoogFailureResponse: type: object description: Metrics API failure response body properties: status: type: string description: Failure status indicator (always "failure") examples: - failure message: type: string additional: type: array items: type: string required: - status - message MoogErrorResponse: type: object description: Metrics API error response body properties: status: type: string description: Error status indicator (always "error") examples: - error message: type: string additional: type: array items: type: string required: - status - message TelegrafMetricsDto: type: object title: Telegraf Metrics Dto properties: metrics: type: array minItems: 1 items: $ref: '#/components/schemas/TelegrafMetric' required: - metrics TelegrafMetric: type: object title: Telegraf Metric properties: fields: type: object minProperties: 1 name: type: string timestamp: type: integer format: int64 tags: type: object additionalProperties: type: string required: - fields - name - timestamp MoogResponse: type: object title: Moog Response properties: status: type: string description: Success status indicator (always "success") data: {} required: - status MoogResponseListOfAlgorithmPolicyDto: type: object title: Moog Response List Of Algorithm Policy Dto description: Metrics API AlgorithmPolicyDto response body properties: status: type: string description: Success status indicator (always "success") examples: - success data: type: array items: $ref: '#/components/schemas/AlgorithmPolicyDto' required: - status - data SortOrder: type: string enum: - asc - desc title: Sort Order default: desc MoogResponseGetPolicyListResponseDto: type: object title: Moog Response Get Policy List Response Dto description: Metrics API GetPolicyListResponseDto response body properties: status: type: string description: Success status indicator (always "success") examples: - success data: $ref: '#/components/schemas/GetPolicyListResponseDto' required: - status - data GetPolicyListResponseDto: type: object title: Get Policy List Response Dto description: Response to /integrations/metrics-policies paged query properties: result: type: array items: $ref: '#/components/schemas/AlgorithmPolicyDto' count: type: integer format: int64 MetricKeyDto: type: object title: Metric Key Dto properties: fully_qualified_moob: type: string metric: type: string pattern: \S source: type: string key: type: string tags: type: object uuid: type: string detector: type: string required: - metric WebMetricDto: type: object title: Web Metric Dto properties: metric: type: string description: A human-readable description of the metric examples: - your-metric data: type: number description: The numerical value of the data point examples: - 10 source: type: string description: 'The server, node, or other entity that generated the metric. tags.source used if source is missing.' maxLength: 32500 examples: - www.your-source.com uuid: type: string fqm: type: string unit: type: string description: 'Optional, one of p, b, r, mb, %, kb, gb, +' examples: - kb key: type: string description: This field is useful for classifying different metrics that share the same description examples: - eth0 time: type: integer description: 'Time of event, seconds or milliseconds since Jan 1, 1970 UTC. If not specified, arrival time is used.' format: int64 utc_offset: type: string description: An offset to apply to a provided metric time in offset GMT offset form examples: - 'GMT+02:00' class: type: string tags: type: object required: - metric - data - source AlgorithmPolicyPriorityDto: type: object title: Algorithm Policy Priority Dto description: Algorithm policy update priority. properties: id: type: string description: ID of the policy priority: type: integer description: 'Relative priority of this policy, processed in increasing numeric order' format: int32 maximum: 2147483646 required: - id - priority security: - ApiKeyAuth: []