get_recommendations

get_recommendations(**kwargs)

Returns a list of Recommendation objects that contain recommendations for a profiling group for a given time period. A list of Anomaly objects that contains details about anomalies detected in the profiling group for the same time period is also returned.

See also: AWS API Documentation

Request Syntax

response = client.get_recommendations(
    endTime=datetime(2015, 1, 1),
    locale='string',
    profilingGroupName='string',
    startTime=datetime(2015, 1, 1)
)
Parameters
  • endTime (datetime) --

    [REQUIRED]

    The start time of the profile to get analysis data about. You must specify startTime and endTime . This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

  • locale (string) --

    The language used to provide analysis. Specify using a string that is one of the following BCP 47 language codes.

    • de-DE - German, Germany
    • en-GB - English, United Kingdom
    • en-US - English, United States
    • es-ES - Spanish, Spain
    • fr-FR - French, France
    • it-IT - Italian, Italy
    • ja-JP - Japanese, Japan
    • ko-KR - Korean, Republic of Korea
    • pt-BR - Portugese, Brazil
    • zh-CN - Chinese, China
    • zh-TW - Chinese, Taiwan
  • profilingGroupName (string) --

    [REQUIRED]

    The name of the profiling group to get analysis data about.

  • startTime (datetime) --

    [REQUIRED]

    The end time of the profile to get analysis data about. You must specify startTime and endTime . This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

Return type

dict

Returns

Response Syntax

{
    'anomalies': [
        {
            'instances': [
                {
                    'endTime': datetime(2015, 1, 1),
                    'id': 'string',
                    'startTime': datetime(2015, 1, 1),
                    'userFeedback': {
                        'type': 'Positive'|'Negative'
                    }
                },
            ],
            'metric': {
                'frameName': 'string',
                'threadStates': [
                    'string',
                ],
                'type': 'AggregatedRelativeTotalTime'
            },
            'reason': 'string'
        },
    ],
    'profileEndTime': datetime(2015, 1, 1),
    'profileStartTime': datetime(2015, 1, 1),
    'profilingGroupName': 'string',
    'recommendations': [
        {
            'allMatchesCount': 123,
            'allMatchesSum': 123.0,
            'endTime': datetime(2015, 1, 1),
            'pattern': {
                'countersToAggregate': [
                    'string',
                ],
                'description': 'string',
                'id': 'string',
                'name': 'string',
                'resolutionSteps': 'string',
                'targetFrames': [
                    [
                        'string',
                    ],
                ],
                'thresholdPercent': 123.0
            },
            'startTime': datetime(2015, 1, 1),
            'topMatches': [
                {
                    'frameAddress': 'string',
                    'targetFramesIndex': 123,
                    'thresholdBreachValue': 123.0
                },
            ]
        },
    ]
}

Response Structure

  • (dict) --

    The structure representing the GetRecommendationsResponse.

    • anomalies (list) --

      The list of anomalies that the analysis has found for this profile.

      • (dict) --

        Details about an anomaly in a specific metric of application profile. The anomaly is detected using analysis of the metric data over a period of time.

        • instances (list) --

          A list of the instances of the detected anomalies during the requested period.

          • (dict) --

            The specific duration in which the metric is flagged as anomalous.

            • endTime (datetime) --

              The end time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

            • id (string) --

              The universally unique identifier (UUID) of an instance of an anomaly in a metric.

            • startTime (datetime) --

              The start time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

            • userFeedback (dict) --

              Feedback type on a specific instance of anomaly submitted by the user.

              • type (string) --

                Optional Positive or Negative feedback submitted by the user about whether the recommendation is useful or not.

        • metric (dict) --

          Details about the metric that the analysis used when it detected the anomaly. The metric includes the name of the frame that was analyzed with the type and thread states used to derive the metric value for that frame.

          • frameName (string) --

            The name of the method that appears as a frame in any stack in a profile.

          • threadStates (list) --

            The list of application runtime thread states that is used to calculate the metric value for the frame.

            • (string) --
          • type (string) --

            A type that specifies how a metric for a frame is analyzed. The supported value AggregatedRelativeTotalTime is an aggregation of the metric value for one frame that is calculated across the occurences of all frames in a profile.

        • reason (string) --

          The reason for which metric was flagged as anomalous.

    • profileEndTime (datetime) --

      The end time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

    • profileStartTime (datetime) --

      The start time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

    • profilingGroupName (string) --

      The name of the profiling group the analysis data is about.

    • recommendations (list) --

      The list of recommendations that the analysis found for this profile.

      • (dict) --

        A potential improvement that was found from analyzing the profiling data.

        • allMatchesCount (integer) --

          How many different places in the profile graph triggered a match.

        • allMatchesSum (float) --

          How much of the total sample count is potentially affected.

        • endTime (datetime) --

          End time of the profile that was used by this analysis. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

        • pattern (dict) --

          The pattern that analysis recognized in the profile to make this recommendation.

          • countersToAggregate (list) --

            A list of the different counters used to determine if there is a match.

            • (string) --
          • description (string) --

            The description of the recommendation. This explains a potential inefficiency in a profiled application.

          • id (string) --

            The universally unique identifier (UUID) of this pattern.

          • name (string) --

            The name for this pattern.

          • resolutionSteps (string) --

            A string that contains the steps recommended to address the potential inefficiency.

          • targetFrames (list) --

            A list of frame names that were searched during the analysis that generated a recommendation.

            • (list) --
              • (string) --
          • thresholdPercent (float) --

            The percentage of time an application spends in one method that triggers a recommendation. The percentage of time is the same as the percentage of the total gathered sample counts during analysis.

        • startTime (datetime) --

          The start time of the profile that was used by this analysis. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC.

        • topMatches (list) --

          List of the matches with most impact.

          • (dict) --

            The part of a profile that contains a recommendation found during analysis.

            • frameAddress (string) --

              The location in the profiling graph that contains a recommendation found during analysis.

            • targetFramesIndex (integer) --

              The target frame that triggered a match.

            • thresholdBreachValue (float) --

              The value in the profile data that exceeded the recommendation threshold.

Exceptions

  • CodeGuruProfiler.Client.exceptions.InternalServerException
  • CodeGuruProfiler.Client.exceptions.ValidationException
  • CodeGuruProfiler.Client.exceptions.ThrottlingException
  • CodeGuruProfiler.Client.exceptions.ResourceNotFoundException