:doc:`PrometheusService <../../amp>` / Client / create_anomaly_detector

***********************
create_anomaly_detector
***********************



.. py:method:: PrometheusService.Client.create_anomaly_detector(**kwargs)

  

  Creates an anomaly detector within a workspace using the Random Cut Forest algorithm for time-series analysis. The anomaly detector analyzes Amazon Managed Service for Prometheus metrics to identify unusual patterns and behaviors.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/amp-2020-08-01/CreateAnomalyDetector>`_  


  **Request Syntax**
  ::

    response = client.create_anomaly_detector(
        workspaceId='string',
        alias='string',
        evaluationIntervalInSeconds=123,
        missingDataAction={
            'markAsAnomaly': True|False,
            'skip': True|False
        },
        configuration={
            'randomCutForest': {
                'query': 'string',
                'shingleSize': 123,
                'sampleSize': 123,
                'ignoreNearExpectedFromAbove': {
                    'amount': 123.0,
                    'ratio': 123.0
                },
                'ignoreNearExpectedFromBelow': {
                    'amount': 123.0,
                    'ratio': 123.0
                }
            }
        },
        labels={
            'string': 'string'
        },
        clientToken='string',
        tags={
            'string': 'string'
        }
    )
    
  :type workspaceId: string
  :param workspaceId: **[REQUIRED]** 

    The identifier of the workspace where the anomaly detector will be created.

    

  
  :type alias: string
  :param alias: **[REQUIRED]** 

    A user-friendly name for the anomaly detector.

    

  
  :type evaluationIntervalInSeconds: integer
  :param evaluationIntervalInSeconds: 

    The frequency, in seconds, at which the anomaly detector evaluates metrics. The default value is 60 seconds.

    

  
  :type missingDataAction: dict
  :param missingDataAction: 

    Specifies the action to take when data is missing during evaluation.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``markAsAnomaly``, ``skip``. 

  
    - **markAsAnomaly** *(boolean) --* 

      Marks missing data points as anomalies.

      

    
    - **skip** *(boolean) --* 

      Skips evaluation when data is missing.

      

    
  
  :type configuration: dict
  :param configuration: **[REQUIRED]** 

    The algorithm configuration for the anomaly detector.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``randomCutForest``. 

  
    - **randomCutForest** *(dict) --* 

      The Random Cut Forest algorithm configuration for anomaly detection.

      

    
      - **query** *(string) --* **[REQUIRED]** 

        The Prometheus query used to retrieve the time-series data for anomaly detection.

         

        .. warning::

           

          Random Cut Forest queries must be wrapped by a supported PromQL aggregation operator. For more information, see `Aggregation operators <https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators>`__ on the *Prometheus docs* website.

           

          **Supported PromQL aggregation operators**: ``avg``, ``count``, ``group``, ``max``, ``min``, ``quantile``, ``stddev``, ``stdvar``, and ``sum``.

          

        

      
      - **shingleSize** *(integer) --* 

        The number of consecutive data points used to create a shingle for the Random Cut Forest algorithm. The default number is 8 consecutive data points.

        

      
      - **sampleSize** *(integer) --* 

        The number of data points sampled from the input stream for the Random Cut Forest algorithm. The default number is 256 consecutive data points.

        

      
      - **ignoreNearExpectedFromAbove** *(dict) --* 

        Configuration for ignoring values that are near expected values from above during anomaly detection.

        .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``amount``, ``ratio``. 

      
        - **amount** *(float) --* 

          The absolute amount by which values can differ from expected values before being considered anomalous.

          

        
        - **ratio** *(float) --* 

          The ratio by which values can differ from expected values before being considered anomalous.

          

        
      
      - **ignoreNearExpectedFromBelow** *(dict) --* 

        Configuration for ignoring values that are near expected values from below during anomaly detection.

        .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``amount``, ``ratio``. 

      
        - **amount** *(float) --* 

          The absolute amount by which values can differ from expected values before being considered anomalous.

          

        
        - **ratio** *(float) --* 

          The ratio by which values can differ from expected values before being considered anomalous.

          

        
      
    
  
  :type labels: dict
  :param labels: 

    The Amazon Managed Service for Prometheus metric labels to associate with the anomaly detector.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type clientToken: string
  :param clientToken: 

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    This field is autopopulated if not provided.

  
  :type tags: dict
  :param tags: 

    The metadata to apply to the anomaly detector to assist with categorization and organization.

    

  
    - *(string) --* 

      The key of the tag. Must not begin with ``aws:``.

      

    
      - *(string) --* 

        The value of the tag.

        

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'anomalyDetectorId': 'string',
          'arn': 'string',
          'status': {
              'statusCode': 'CREATING'|'ACTIVE'|'UPDATING'|'DELETING'|'CREATION_FAILED'|'UPDATE_FAILED'|'DELETION_FAILED',
              'statusReason': 'string'
          },
          'tags': {
              'string': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **anomalyDetectorId** *(string) --* 

        The unique identifier of the created anomaly detector.

        
      

      - **arn** *(string) --* 

        The Amazon Resource Name (ARN) of the created anomaly detector.

        
      

      - **status** *(dict) --* 

        The status information of the created anomaly detector.

        
        

        - **statusCode** *(string) --* 

          The status code of the anomaly detector.

          
        

        - **statusReason** *(string) --* 

          A description of the current status of the anomaly detector.

          
    
      

      - **tags** *(dict) --* 

        The tags applied to the created anomaly detector.

        
        

        - *(string) --* 

          The key of the tag. Must not begin with ``aws:``.

          
          

          - *(string) --* 

            The value of the tag.

            
    
  
  
  **Exceptions**
  
  *   :py:class:`PrometheusService.Client.exceptions.ThrottlingException`

  
  *   :py:class:`PrometheusService.Client.exceptions.ConflictException`

  
  *   :py:class:`PrometheusService.Client.exceptions.ValidationException`

  
  *   :py:class:`PrometheusService.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`PrometheusService.Client.exceptions.InternalServerException`

  
  *   :py:class:`PrometheusService.Client.exceptions.ServiceQuotaExceededException`

  