:doc:`CodeGuruProfiler <../../codeguruprofiler>` / Client / get_profile

***********
get_profile
***********



.. py:method:: CodeGuruProfiler.Client.get_profile(**kwargs)

  

  Gets the aggregated profile of a profiling group for a specified time range. Amazon CodeGuru Profiler collects posted agent profiles for a profiling group into aggregated profiles.

   `` <note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol>``

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/GetProfile>`_  


  **Request Syntax**
  ::

    response = client.get_profile(
        accept='string',
        endTime=datetime(2015, 1, 1),
        maxDepth=123,
        period='string',
        profilingGroupName='string',
        startTime=datetime(2015, 1, 1)
    )
    
  :type accept: string
  :param accept: 

    The format of the returned profiling data. The format maps to the ``Accept`` and ``Content-Type`` headers of the HTTP request. You can specify one of the following: or the default .

     `` <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul>``

  
  :type endTime: datetime
  :param endTime: 

    The end time of the requested profile. Specify 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.

     

    If you specify ``endTime``, then you must also specify ``period`` or ``startTime``, but not both.

    

  
  :type maxDepth: integer
  :param maxDepth: 

    The maximum depth of the stacks in the code that is represented in the aggregated profile. For example, if CodeGuru Profiler finds a method ``A``, which calls method ``B``, which calls method ``C``, which calls method ``D``, then the depth is 4. If the ``maxDepth`` is set to 2, then the aggregated profile contains representations of methods ``A`` and ``B``.

    

  
  :type period: string
  :param period: 

    Used with ``startTime`` or ``endTime`` to specify the time range for the returned aggregated profile. Specify using the ISO 8601 format. For example, ``P1DT1H1M1S``.

     `` <p> To get the latest aggregated profile, specify only <code>period</code>. </p>``

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

    The name of the profiling group to get.

    

  
  :type startTime: datetime
  :param startTime: 

    The start time of the profile to get. Specify 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.

     `` <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p>``

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

    
    ::

      {
          'contentEncoding': 'string',
          'contentType': 'string',
          'profile': StreamingBody()
      }
      
    **Response Structure**

    

    - *(dict) --* 

      The structure representing the getProfileResponse.

      
      

      - **contentEncoding** *(string) --* 

        The content encoding of the profile.

        
      

      - **contentType** *(string) --* 

        The content type of the profile in the payload. It is either ``application/json`` or the default ``application/x-amzn-ion``.

        
      

      - **profile** (:class:`.StreamingBody`) -- 

        Information about the profile.

        
  
  **Exceptions**
  
  *   :py:class:`CodeGuruProfiler.Client.exceptions.InternalServerException`

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

  
  *   :py:class:`CodeGuruProfiler.Client.exceptions.ThrottlingException`

  
  *   :py:class:`CodeGuruProfiler.Client.exceptions.ResourceNotFoundException`

  