blob: 571bdc4f40be68be17feca979ccb6038e8eca55a [file] [log] [blame]
{
"batchPath": "batch",
"title": "Google Tracing API",
"ownerName": "Google",
"resources": {
"projects": {
"resources": {
"traces": {
"methods": {
"list": {
"parameters": {
"filter": {
"description": "An optional filter for the request.\nExample:\n`version_label_key:a some_label:some_label_key`\nreturns traces from version `a` and has `some_label` with `some_label_key`.",
"type": "string",
"location": "query"
},
"endTime": {
"description": "End of the time interval (inclusive) during which the trace data was\ncollected from the application.",
"format": "google-datetime",
"type": "string",
"location": "query"
},
"pageToken": {
"location": "query",
"description": "Token identifying the page of results to return. If provided, use the\nvalue of the `next_page_token` field from a previous request. Optional.",
"type": "string"
},
"startTime": {
"description": "Start of the time interval (inclusive) during which the trace data was\ncollected from the application.",
"format": "google-datetime",
"type": "string",
"location": "query"
},
"pageSize": {
"description": "Maximum number of traces to return. If not specified or \u003c= 0, the\nimplementation selects a reasonable value. The implementation may\nreturn fewer traces than the requested page size. Optional.",
"format": "int32",
"type": "integer",
"location": "query"
},
"parent": {
"pattern": "^projects/[^/]+$",
"location": "path",
"description": "ID of the Cloud project where the trace data is stored which is\n`projects/PROJECT_ID`.",
"required": true,
"type": "string"
},
"orderBy": {
"location": "query",
"description": "Field used to sort the returned traces. Optional.\nCan be one of the following:\n\n* `trace_id`\n* `name` (`name` field of root span in the trace)\n* `duration` (difference between `end_time` and `start_time` fields of\n the root span)\n* `start` (`start_time` field of the root span)\n\nDescending order can be specified by appending `desc` to the sort field\n(for example, `name desc`).\n\nOnly one sort field is permitted.",
"type": "string"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"flatPath": "v2/projects/{projectsId}/traces",
"path": "v2/{+parent}/traces",
"id": "tracing.projects.traces.list",
"description": "Returns of a list of traces that match the specified filter conditions.",
"response": {
"$ref": "ListTracesResponse"
},
"parameterOrder": [
"parent"
],
"httpMethod": "GET"
},
"batchWrite": {
"request": {
"$ref": "BatchWriteSpansRequest"
},
"description": "Sends new spans to Stackdriver Trace or updates existing traces. If the\nname of a trace that you send matches that of an existing trace, new spans\nare added to the existing trace. Attempt to update existing spans results\nundefined behavior. If the name does not match, a new trace is created\nwith given set of spans.",
"response": {
"$ref": "Empty"
},
"parameterOrder": [
"name"
],
"httpMethod": "POST",
"parameters": {
"name": {
"description": "Name of the project where the spans belong to. Format is\n`projects/PROJECT_ID`.",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+$",
"location": "path"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
],
"flatPath": "v2/projects/{projectsId}/traces:batchWrite",
"path": "v2/{+name}/traces:batchWrite",
"id": "tracing.projects.traces.batchWrite"
},
"listSpans": {
"description": "Returns a list of spans within a trace.",
"response": {
"$ref": "ListSpansResponse"
},
"parameterOrder": [
"parent"
],
"httpMethod": "GET",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"parameters": {
"parent": {
"pattern": "^projects/[^/]+/traces/[^/]+$",
"location": "path",
"description": "ID of the trace for which to list child spans. Format is\n`projects/PROJECT_ID/traces/TRACE_ID`.",
"required": true,
"type": "string"
},
"pageToken": {
"location": "query",
"description": "Token identifying the page of results to return. If provided, use the\nvalue of the `nextPageToken` field from a previous request. Optional.",
"type": "string"
}
},
"flatPath": "v2/projects/{projectsId}/traces/{tracesId}:listSpans",
"path": "v2/{+parent}:listSpans",
"id": "tracing.projects.traces.listSpans"
}
},
"resources": {
"spans": {
"methods": {
"create": {
"flatPath": "v2/projects/{projectsId}/traces/{tracesId}/spans/{spansId}",
"path": "v2/{+name}",
"id": "tracing.projects.traces.spans.create",
"request": {
"$ref": "Span"
},
"description": "Creates a new Span.",
"response": {
"$ref": "Span"
},
"parameterOrder": [
"name"
],
"httpMethod": "PUT",
"parameters": {
"name": {
"location": "path",
"description": "The resource name of Span in the format\n`projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.\n`TRACE_ID` is a unique identifier for a trace within a project and is a\nbase16-encoded, case-insensitive string and is required to be 32 char long.\n`SPAN_ID` is a unique identifier for a span within a trace. It is a\nbase 16-encoded, case-insensitive string of a 8-bytes array and is required\nto be 16 char long.",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+/traces/[^/]+/spans/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
]
}
}
}
}
}
}
}
},
"parameters": {
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"type": "string",
"location": "query"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string",
"location": "query"
},
"callback": {
"location": "query",
"description": "JSONP",
"type": "string"
},
"$.xgafv": {
"description": "V1 error format.",
"type": "string",
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
]
},
"alt": {
"type": "string",
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
]
},
"access_token": {
"location": "query",
"description": "OAuth access token.",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"type": "string",
"location": "query"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"type": "string",
"location": "query"
},
"pp": {
"location": "query",
"description": "Pretty-print response.",
"type": "boolean",
"default": "true"
},
"bearer_token": {
"location": "query",
"description": "OAuth bearer token.",
"type": "string"
},
"oauth_token": {
"location": "query",
"description": "OAuth 2.0 token for the current user.",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"type": "string",
"location": "query"
},
"prettyPrint": {
"description": "Returns response with indentations and line breaks.",
"type": "boolean",
"default": "true",
"location": "query"
}
},
"version": "v2",
"baseUrl": "https://tracing.googleapis.com/",
"servicePath": "",
"description": "Send and retrieve trace data from Google Stackdriver Trace.\n",
"kind": "discovery#restDescription",
"basePath": "",
"id": "tracing:v2",
"documentationLink": "https://cloud.google.com/trace",
"revision": "20170531",
"discoveryVersion": "v1",
"version_module": "True",
"schemas": {
"Links": {
"id": "Links",
"description": "A collection of links, which are references from this span to a span\nin the same or different trace.",
"type": "object",
"properties": {
"link": {
"description": "A collection of links.",
"type": "array",
"items": {
"$ref": "Link"
}
},
"droppedLinksCount": {
"description": "The number of dropped links after the maximum size was enforced. If\n0 then no links were dropped.",
"format": "int32",
"type": "integer"
}
}
},
"StackTrace": {
"description": "StackTrace collected in a trace.",
"type": "object",
"properties": {
"stackTraceHashId": {
"description": "The hash ID is used to conserve network bandwidth for duplicate\nstack traces within a single trace.\n\nOften multiple spans will have identical stack traces.\nThe first occurrence of a stack trace should contain both the\n`stackFrame` content and a value in `stackTraceHashId`.\n\nSubsequent spans within the same request can refer\nto that stack trace by only setting `stackTraceHashId`.",
"format": "uint64",
"type": "string"
},
"stackFrames": {
"description": "Stack frames in this stack trace. A maximum of 128 frames are allowed.",
"$ref": "StackFrames"
}
},
"id": "StackTrace"
},
"TruncatableString": {
"type": "object",
"properties": {
"truncatedCharacterCount": {
"description": "The number of characters truncated from the original string value. If 0 it\nmeans that the string value was not truncated.",
"format": "int32",
"type": "integer"
},
"value": {
"description": "The truncated string value. E.g. for a string attribute this may have up to\n256 bytes.",
"type": "string"
}
},
"id": "TruncatableString",
"description": "Represents a string value that might be truncated."
},
"TimeEvent": {
"properties": {
"networkEvent": {
"$ref": "NetworkEvent",
"description": "An event describing an RPC message sent/received on the network."
},
"annotation": {
"$ref": "Annotation",
"description": "One or more key:value pairs."
},
"time": {
"description": "The timestamp indicating the time the event occurred.",
"format": "google-datetime",
"type": "string"
}
},
"id": "TimeEvent",
"description": "A time-stamped annotation in the Span.",
"type": "object"
},
"NetworkEvent": {
"description": "An event describing an RPC message sent/received on the network. A\nmaximum of 128 network events are allowed per Span.",
"type": "object",
"properties": {
"time": {
"description": "If available, this is the kernel time:\n\n* For sent messages, this is the time at which the first bit was sent.\n* For received messages, this is the time at which the last bit was\n received.",
"format": "google-datetime",
"type": "string"
},
"type": {
"enumDescriptions": [
"Unknown event type.",
"Indicates a sent RPC message.",
"Indicates a received RPC message."
],
"enum": [
"TYPE_UNSPECIFIED",
"SENT",
"RECV"
],
"description": "Type of NetworkEvent. Indicates whether the RPC message was sent or\nreceived.",
"type": "string"
},
"messageId": {
"description": "An identifier for the message, which must be unique in this span.",
"format": "uint64",
"type": "string"
},
"messageSize": {
"description": "The number of bytes sent or received.",
"format": "uint64",
"type": "string"
}
},
"id": "NetworkEvent"
},
"ListSpansResponse": {
"description": "The response message for the `ListSpans` method.",
"type": "object",
"properties": {
"spans": {
"description": "The requested spans if there are any in the specified trace.",
"type": "array",
"items": {
"$ref": "Span"
}
},
"nextPageToken": {
"description": "If defined, indicates that there are more spans that match the request.\nPass this as the value of `pageToken` in a subsequent request to retrieve\nadditional spans.",
"type": "string"
}
},
"id": "ListSpansResponse"
},
"StackFrame": {
"description": "Represents a single stack frame in a stack trace.",
"type": "object",
"properties": {
"fileName": {
"$ref": "TruncatableString",
"description": "The filename of the file containing this frame (up to 256 characters)."
},
"sourceVersion": {
"$ref": "TruncatableString",
"description": "The version of the deployed source code (up to 128 characters)."
},
"originalFunctionName": {
"$ref": "TruncatableString",
"description": "Used when the function name is\n[mangled](http://www.avabodh.com/cxxin/namemangling.html). May be\nfully-qualified (up to 1024 characters)."
},
"functionName": {
"$ref": "TruncatableString",
"description": "The fully-qualified name that uniquely identifies this function or\nmethod (up to 1024 characters)."
},
"lineNumber": {
"description": "Line number of the frame.",
"format": "int64",
"type": "string"
},
"loadModule": {
"$ref": "Module",
"description": "Binary module the code is loaded from."
},
"columnNumber": {
"type": "string",
"description": "Column number is important in JavaScript (anonymous functions).\nMay not be available in some languages.",
"format": "int64"
}
},
"id": "StackFrame"
},
"Link": {
"description": "A pointer from this span to another span in a different `Trace` within\nthe same service project or within a different service project. Used\n(for example) in batching operations, where a single batch handler\nprocesses multiple requests from different traces or when receives a\nrequest from a different service project.",
"type": "object",
"properties": {
"traceId": {
"description": "`TRACE_ID` is a unique identifier for a trace within a project. It is\na base16-encoded, case-insensitive string of a 16-bytes array and is\nrequired to be 32 char long.",
"type": "string"
},
"spanId": {
"description": "`SPAN_ID` is a unique identifier for a span within a trace. It is a\nbase16-encoded, case-insensitive string of a 8-bytes array and is\nrequired to be 16 char long.",
"type": "string"
},
"type": {
"enumDescriptions": [
"The relationship of the two spans is unknown.",
"The current span is a child of the linked span.",
"The current span is the parent of the linked span."
],
"enum": [
"TYPE_UNSPECIFIED",
"CHILD",
"PARENT"
],
"description": "The relationship of the current span relative to the linked span.",
"type": "string"
}
},
"id": "Link"
},
"Annotation": {
"description": "Text annotation with a set of attributes. A maximum of 32 annotations are\nallowed per Span.",
"type": "object",
"properties": {
"description": {
"$ref": "TruncatableString",
"description": "A user-supplied message describing the event. The maximum length for\nthe description is 256 bytes."
},
"attributes": {
"description": "A set of attributes on the annotation. A maximum of 4 attributes are\nallowed per Annotation.",
"$ref": "Attributes"
}
},
"id": "Annotation"
},
"StackFrames": {
"description": "Represents collection of StackFrames that can be truncated.",
"type": "object",
"properties": {
"droppedFramesCount": {
"description": "The number of dropped stack frames after the maximum size was enforced.\nIf 0 then no frames were dropped.",
"format": "int32",
"type": "integer"
},
"frame": {
"description": "Stack frames in this stack trace.",
"type": "array",
"items": {
"$ref": "StackFrame"
}
}
},
"id": "StackFrames"
},
"Trace": {
"properties": {
"name": {
"description": "The resource name of Trace in the format\n`projects/PROJECT_ID/traces/TRACE_ID`. `TRACE_ID` is a unique identifier\nfor a trace within a project and is a base16-encoded, case-insensitive\nstring and is required to be 32 char long.",
"type": "string"
}
},
"id": "Trace",
"description": "A trace describes how long it takes for an application to perform some\noperations. It consists of a set of spans, each representing\nan operation and including time information and operation details.",
"type": "object"
},
"TimeEvents": {
"type": "object",
"properties": {
"timeEvent": {
"description": "A collection of `TimeEvent`s.",
"type": "array",
"items": {
"$ref": "TimeEvent"
}
},
"droppedNetworkEventsCount": {
"description": "The number of dropped network events after the maximum size was enforced.\nIf 0 then no annotations were dropped.",
"format": "int32",
"type": "integer"
},
"droppedAnnotationsCount": {
"description": "The number of dropped annotations after the maximum size was enforced. If\n0 then no annotations were dropped.",
"format": "int32",
"type": "integer"
}
},
"id": "TimeEvents",
"description": "A collection of `TimeEvent`s. A `TimeEvent` is a time-stamped annotation\non the span, consisting of either user-supplied key:value pairs, or\ndetails of an RPC message sent/received on the network."
},
"Module": {
"description": "Binary module.",
"type": "object",
"properties": {
"module": {
"$ref": "TruncatableString",
"description": "E.g. main binary, kernel modules, and dynamic libraries\nsuch as libc.so, sharedlib.so (up to 256 characters)."
},
"buildId": {
"$ref": "TruncatableString",
"description": "Build_id is a unique identifier for the module, usually a hash of its\ncontents (up to 128 characters)."
}
},
"id": "Module"
},
"Status": {
"description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed. The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n it may embed the `Status` in the normal response to indicate the partial\n errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n `Status` message should be used directly inside batch response, one for\n each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n results in its response, the status of those operations should be\n represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n be used directly after any stripping needed for security/privacy reasons.",
"type": "object",
"properties": {
"details": {
"description": "A list of messages that carry the error details. There will be a\ncommon set of message types for APIs to use.",
"type": "array",
"items": {
"additionalProperties": {
"description": "Properties of the object. Contains field @type with type URL.",
"type": "any"
},
"type": "object"
}
},
"code": {
"description": "The status code, which should be an enum value of google.rpc.Code.",
"format": "int32",
"type": "integer"
},
"message": {
"description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
"type": "string"
}
},
"id": "Status"
},
"BatchWriteSpansRequest": {
"description": "The request message for the `BatchWriteSpans` method.",
"type": "object",
"properties": {
"spans": {
"description": "A collection of spans.",
"type": "array",
"items": {
"$ref": "Span"
}
}
},
"id": "BatchWriteSpansRequest"
},
"ListTracesResponse": {
"id": "ListTracesResponse",
"description": "The response message for the `ListTraces` method.",
"type": "object",
"properties": {
"traces": {
"type": "array",
"items": {
"$ref": "Trace"
},
"description": "List of trace records returned."
},
"nextPageToken": {
"type": "string",
"description": "If defined, indicates that there are more traces that match the request\nand that this value should be passed to the next request to continue\nretrieving additional traces."
}
}
},
"Span": {
"properties": {
"displayName": {
"$ref": "TruncatableString",
"description": "Description of the operation in the span. It is sanitized and displayed in\nthe Stackdriver Trace tool in the\n{% dynamic print site_values.console_name %}.\nThe display_name may be a method name or some other per-call site\nname. For the same executable and the same call point, a best practice is\nto use a consistent operation name, which makes it easier to correlate\ncross-trace spans.\nThe maximum length for the display_name is 128 bytes."
},
"timeEvents": {
"$ref": "TimeEvents",
"description": "A maximum of 32 annotations and 128 network events are allowed per Span."
},
"status": {
"$ref": "Status",
"description": "An optional final status for this span."
},
"name": {
"description": "The resource name of Span in the format\n`projects/PROJECT_ID/traces/TRACE_ID/spans/SPAN_ID`.\n`TRACE_ID` is a unique identifier for a trace within a project and is a\nbase16-encoded, case-insensitive string and is required to be 32 char long.\n`SPAN_ID` is a unique identifier for a span within a trace. It is a\nbase 16-encoded, case-insensitive string of a 8-bytes array and is required\nto be 16 char long.",
"type": "string"
},
"stackTrace": {
"description": "Stack trace captured at the start of the span.",
"$ref": "StackTrace"
},
"links": {
"$ref": "Links",
"description": "A maximum of 128 links are allowed per Span."
},
"attributes": {
"$ref": "Attributes",
"description": "A set of attributes on the span. A maximum of 32 attributes are allowed per\nSpan."
},
"spanId": {
"type": "string",
"description": "Unique identifier for a span within a trace. It is a base 16-encoded,\ncase-insensitive string of a 8-bytes array and is required."
},
"parentSpanId": {
"description": "ID of parent span which is a base 16-encoded, case-insensitive string of\na 8-bytes array and is required to be 16 char long. If this is a root span,\nthe value must be empty.",
"type": "string"
},
"endTime": {
"description": "End time of the span.\nOn the client side, this is the local machine clock time at which the span\nexecution was ended; on the server\nside, this is the time at which the server application handler stopped\nrunning.",
"format": "google-datetime",
"type": "string"
},
"startTime": {
"description": "Start time of the span.\nOn the client side, this is the local machine clock time at which the span\nexecution was started; on the server\nside, this is the time at which the server application handler started\nrunning.",
"format": "google-datetime",
"type": "string"
}
},
"id": "Span",
"description": "A span represents a single operation within a trace. Spans can be nested\nto form a trace tree. Often, a trace contains a root span that\ndescribes the end-to-end latency and, optionally, one or more subspans for\nits sub-operations. (A trace could alternatively contain multiple root spans,\nor none at all.) Spans do not need to be contiguous. There may be gaps\nand/or overlaps between spans in a trace.",
"type": "object"
},
"Empty": {
"type": "object",
"properties": {},
"id": "Empty",
"description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`."
},
"AttributeValue": {
"description": "The allowed types for the value side of an attribute key:value pair.",
"type": "object",
"properties": {
"intValue": {
"description": "An integer value.",
"format": "int64",
"type": "string"
},
"stringValue": {
"$ref": "TruncatableString",
"description": "A string value (up to 256 bytes)."
},
"boolValue": {
"description": "A boolean value.",
"type": "boolean"
}
},
"id": "AttributeValue"
},
"Attributes": {
"description": "Attributes of a span with a key:value format.",
"type": "object",
"properties": {
"droppedAttributesCount": {
"type": "integer",
"description": "The number of dropped attributes after the maximum size was enforced. If\n0 then no attributes were dropped.",
"format": "int32"
},
"attributeMap": {
"additionalProperties": {
"$ref": "AttributeValue"
},
"description": "The maximum key length is 128 bytes (attributes are dropped if the\nkey size is larger than the maximum allowed). The value can be a string\n(up to 256 bytes), integer, or boolean (true/false). Some common pair\nexamples:\n\n \"/instance_id\": \"my-instance\"\n \"/zone\": \"us-central1-a\"\n \"/grpc/peer_address\": \"ip:port\" (dns, etc.)\n \"/grpc/deadline\": \"Duration\"\n \"/http/user_agent\"\n \"/http/request_bytes\": 300\n \"/http/response_bytes\": 1200\n \"/http/url\": google.com/apis\n \"abc.com/myattribute\": true",
"type": "object"
}
},
"id": "Attributes"
}
},
"icons": {
"x32": "http://www.google.com/images/icons/product/search-32.gif",
"x16": "http://www.google.com/images/icons/product/search-16.gif"
},
"protocol": "rest",
"canonicalName": "Tracing",
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/trace.readonly": {
"description": "Read Trace data for a project or application"
},
"https://www.googleapis.com/auth/trace.append": {
"description": "Write Trace data for a project or application"
},
"https://www.googleapis.com/auth/cloud-platform": {
"description": "View and manage your data across Google Cloud Platform services"
}
}
}
},
"rootUrl": "https://tracing.googleapis.com/",
"ownerDomain": "google.com",
"name": "tracing"
}