# Stackdriver Monitoring API . projects . metricDescriptors

## Instance Methods

Creates a new metric descriptor. User-created metric descriptors define custom metrics.

Deletes a metric descriptor. Only user-created custom metrics can be deleted.

Gets a single metric descriptor. This method does not require a Stackdriver account.

Lists metric descriptors that match a filter. This method does not require a Stackdriver account.

Retrieves the next page of results.

### Method Details

`create(name, body, x__xgafv=None)`

    Creates a new metric descriptor. User-created metric descriptors define custom metrics.

    Args:
      name: string, The project on which to execute the request. The format is "projects/{project_id_or_number}". (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.
        "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".
        "description": "A String", # A detailed description of the metric, which can be used in documentation.
        "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.
        "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
        "labels": [ # The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.
          { # A description of a label.
            "valueType": "A String", # The type of data that can be assigned to the label.
            "description": "A String", # A human-readable description for the label.
            "key": "A String", # The label key.
          },
        ],
        "type": "A String", # The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:
            # "custom.googleapis.com/invoice/paid/amount"
            # "appengine.googleapis.com/http/server/response_latencies"
        "unit": "A String", # The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)
            # bit bit
            # By byte
            # s second
            # min minute
            # h hour
            # d dayPrefixes (PREFIX)
            # k kilo (10**3)
            # M mega (10**6)
            # G giga (10**9)
            # T tera (10**12)
            # P peta (10**15)
            # E exa (10**18)
            # Z zetta (10**21)
            # Y yotta (10**24)
            # m milli (10**-3)
            # u micro (10**-6)
            # n nano (10**-9)
            # p pico (10**-12)
            # f femto (10**-15)
            # a atto (10**-18)
            # z zepto (10**-21)
            # y yocto (10**-24)
            # Ki kibi (2**10)
            # Mi mebi (2**20)
            # Gi gibi (2**30)
            # Ti tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:
            # / division (as an infix operator, e.g. 1/s).
            # . multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:
            # Expression = Component { "." Component } { "/" Component } ;
            #
            # Component = [ PREFIX ] UNIT [ Annotation ]
            #           | Annotation
            #           | "1"
            #           ;
            #
            # Annotation = "{" NAME "}" ;
            # Notes:
            # Annotation is just a comment if it follows a UNIT and is  equivalent to 1 if it is used alone. For examples,  {requests}/s == 1/s, By{transmitted}/s == By/s.
            # NAME is a sequence of non-blank printable ASCII characters not  containing '{' or '}'.
        "name": "A String", # The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:
            # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.
          "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".
          "description": "A String", # A detailed description of the metric, which can be used in documentation.
          "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.
          "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
          "labels": [ # The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.
            { # A description of a label.
              "valueType": "A String", # The type of data that can be assigned to the label.
              "description": "A String", # A human-readable description for the label.
              "key": "A String", # The label key.
            },
          ],
          "type": "A String", # The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:
              # "custom.googleapis.com/invoice/paid/amount"
              # "appengine.googleapis.com/http/server/response_latencies"
          "unit": "A String", # The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)
              # bit bit
              # By byte
              # s second
              # min minute
              # h hour
              # d dayPrefixes (PREFIX)
              # k kilo (10**3)
              # M mega (10**6)
              # G giga (10**9)
              # T tera (10**12)
              # P peta (10**15)
              # E exa (10**18)
              # Z zetta (10**21)
              # Y yotta (10**24)
              # m milli (10**-3)
              # u micro (10**-6)
              # n nano (10**-9)
              # p pico (10**-12)
              # f femto (10**-15)
              # a atto (10**-18)
              # z zepto (10**-21)
              # y yocto (10**-24)
              # Ki kibi (2**10)
              # Mi mebi (2**20)
              # Gi gibi (2**30)
              # Ti tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:
              # / division (as an infix operator, e.g. 1/s).
              # . multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:
              # Expression = Component { "." Component } { "/" Component } ;
              #
              # Component = [ PREFIX ] UNIT [ Annotation ]
              #           | Annotation
              #           | "1"
              #           ;
              #
              # Annotation = "{" NAME "}" ;
              # Notes:
              # Annotation is just a comment if it follows a UNIT and is  equivalent to 1 if it is used alone. For examples,  {requests}/s == 1/s, By{transmitted}/s == By/s.
              # NAME is a sequence of non-blank printable ASCII characters not  containing '{' or '}'.
          "name": "A String", # The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:
              # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
        }

`delete(name, x__xgafv=None)`

    Deletes a metric descriptor. Only user-created custom metrics can be deleted.

    Args:
      name: string, The metric descriptor on which to execute the request. The format is "projects/{project_id_or_number}/metricDescriptors/{metric_id}". An example of {metric_id} is: "custom.googleapis.com/my_test_metric". (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance:
          # service Foo {
          #   rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
          # }
          # The JSON representation for Empty is empty JSON object {}.
      }

`get(name, x__xgafv=None)`

    Gets a single metric descriptor. This method does not require a Stackdriver account.

    Args:
      name: string, The metric descriptor on which to execute the request. The format is "projects/{project_id_or_number}/metricDescriptors/{metric_id}". An example value of {metric_id} is "compute.googleapis.com/instance/disk/read_bytes_count". (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.
          "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".
          "description": "A String", # A detailed description of the metric, which can be used in documentation.
          "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.
          "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
          "labels": [ # The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.
            { # A description of a label.
              "valueType": "A String", # The type of data that can be assigned to the label.
              "description": "A String", # A human-readable description for the label.
              "key": "A String", # The label key.
            },
          ],
          "type": "A String", # The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:
              # "custom.googleapis.com/invoice/paid/amount"
              # "appengine.googleapis.com/http/server/response_latencies"
          "unit": "A String", # The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)
              # bit bit
              # By byte
              # s second
              # min minute
              # h hour
              # d dayPrefixes (PREFIX)
              # k kilo (10**3)
              # M mega (10**6)
              # G giga (10**9)
              # T tera (10**12)
              # P peta (10**15)
              # E exa (10**18)
              # Z zetta (10**21)
              # Y yotta (10**24)
              # m milli (10**-3)
              # u micro (10**-6)
              # n nano (10**-9)
              # p pico (10**-12)
              # f femto (10**-15)
              # a atto (10**-18)
              # z zepto (10**-21)
              # y yocto (10**-24)
              # Ki kibi (2**10)
              # Mi mebi (2**20)
              # Gi gibi (2**30)
              # Ti tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:
              # / division (as an infix operator, e.g. 1/s).
              # . multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:
              # Expression = Component { "." Component } { "/" Component } ;
              #
              # Component = [ PREFIX ] UNIT [ Annotation ]
              #           | Annotation
              #           | "1"
              #           ;
              #
              # Annotation = "{" NAME "}" ;
              # Notes:
              # Annotation is just a comment if it follows a UNIT and is  equivalent to 1 if it is used alone. For examples,  {requests}/s == 1/s, By{transmitted}/s == By/s.
              # NAME is a sequence of non-blank printable ASCII characters not  containing '{' or '}'.
          "name": "A String", # The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:
              # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
        }

`list(name, pageSize=None, filter=None, pageToken=None, x__xgafv=None)`

    Lists metric descriptors that match a filter. This method does not require a Stackdriver account.

    Args:
      name: string, The project on which to execute the request. The format is "projects/{project_id_or_number}". (required)
      pageSize: integer, A positive number that is the maximum number of results to return.
      filter: string, If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the filter specifies which metric descriptors are to be returned. For example, the following filter matches all custom metrics:
    metric.type = starts_with("custom.googleapis.com/")

      pageToken: string, If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # The ListMetricDescriptors response.
        "nextPageToken": "A String", # If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method.
        "metricDescriptors": [ # The metric descriptors that are available to the project and that match the value of filter, if present.
          { # Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.
              "displayName": "A String", # A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".
              "description": "A String", # A detailed description of the metric, which can be used in documentation.
              "metricKind": "A String", # Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.
              "valueType": "A String", # Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
              "labels": [ # The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.
                { # A description of a label.
                  "valueType": "A String", # The type of data that can be assigned to the label.
                  "description": "A String", # A human-readable description for the label.
                  "key": "A String", # The label key.
                },
              ],
              "type": "A String", # The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:
                  # "custom.googleapis.com/invoice/paid/amount"
                  # "appengine.googleapis.com/http/server/response_latencies"
              "unit": "A String", # The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT)
                  # bit bit
                  # By byte
                  # s second
                  # min minute
                  # h hour
                  # d dayPrefixes (PREFIX)
                  # k kilo (10**3)
                  # M mega (10**6)
                  # G giga (10**9)
                  # T tera (10**12)
                  # P peta (10**15)
                  # E exa (10**18)
                  # Z zetta (10**21)
                  # Y yotta (10**24)
                  # m milli (10**-3)
                  # u micro (10**-6)
                  # n nano (10**-9)
                  # p pico (10**-12)
                  # f femto (10**-15)
                  # a atto (10**-18)
                  # z zepto (10**-21)
                  # y yocto (10**-24)
                  # Ki kibi (2**10)
                  # Mi mebi (2**20)
                  # Gi gibi (2**30)
                  # Ti tebi (2**40)GrammarThe grammar includes the dimensionless unit 1, such as 1/s.The grammar also includes these connectors:
                  # / division (as an infix operator, e.g. 1/s).
                  # . multiplication (as an infix operator, e.g. GBy.d)The grammar for a unit is as follows:
                  # Expression = Component { "." Component } { "/" Component } ;
                  #
                  # Component = [ PREFIX ] UNIT [ Annotation ]
                  #           | Annotation
                  #           | "1"
                  #           ;
                  #
                  # Annotation = "{" NAME "}" ;
                  # Notes:
                  # Annotation is just a comment if it follows a UNIT and is  equivalent to 1 if it is used alone. For examples,  {requests}/s == 1/s, By{transmitted}/s == By/s.
                  # NAME is a sequence of non-blank printable ASCII characters not  containing '{' or '}'.
              "name": "A String", # The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:
                  # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
            },
        ],
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.