blob: f7a2c2da6bbf7e659af5f74a1914af5ee2b2c9e6 [file] [log] [blame]
{
"title": "Google Tracing API",
"ownerName": "Google",
"resources": {
"projects": {
"resources": {
"traces": {
"methods": {
"listSpans": {
"description": "Returns a list of spans within a trace.",
"response": {
"$ref": "ListSpansResponse"
},
"parameterOrder": [
"name"
],
"httpMethod": "GET",
"parameters": {
"name": {
"description": "ID of the trace for which to list child spans. Format is\n`projects/PROJECT_ID/traces/TRACE_ID`.",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+/traces/[^/]+$",
"location": "path"
},
"pageToken": {
"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",
"location": "query"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"flatPath": "v1/projects/{projectsId}/traces/{tracesId}:listSpans",
"path": "v1/{+name}:listSpans",
"id": "tracing.projects.traces.listSpans"
},
"list": {
"flatPath": "v1/projects/{projectsId}/traces",
"path": "v1/{+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",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"parameters": {
"pageSize": {
"location": "query",
"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"
},
"parent": {
"description": "ID of the Cloud project where the trace data is stored.",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+$",
"location": "path"
},
"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"
},
"filter": {
"location": "query",
"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"
},
"endTime": {
"location": "query",
"description": "End of the time interval (inclusive) during which the trace data was\ncollected from the application.",
"format": "google-datetime",
"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"
},
"pageToken": {
"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",
"location": "query"
}
}
},
"get": {
"description": "Returns a specific trace.",
"httpMethod": "GET",
"parameterOrder": [
"name"
],
"response": {
"$ref": "Trace"
},
"parameters": {
"name": {
"location": "path",
"description": "ID of the trace. Format is `projects/PROJECT_ID/traces/TRACE_ID`.",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+/traces/[^/]+$"
}
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.readonly"
],
"flatPath": "v1/projects/{projectsId}/traces/{tracesId}",
"id": "tracing.projects.traces.get",
"path": "v1/{+name}"
},
"batchUpdate": {
"httpMethod": "POST",
"parameterOrder": [
"parent"
],
"response": {
"$ref": "Empty"
},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/trace.append"
],
"parameters": {
"parent": {
"description": "ID of the Cloud project where the trace data is stored.",
"required": true,
"type": "string",
"pattern": "^projects/[^/]+$",
"location": "path"
}
},
"flatPath": "v1/projects/{projectsId}/traces:batchUpdate",
"id": "tracing.projects.traces.batchUpdate",
"path": "v1/{+parent}/traces:batchUpdate",
"description": "Sends new spans to Stackdriver Trace or updates existing spans. If the\nname of a trace that you send matches that of an existing trace, any fields\nin the existing trace and its spans are overwritten by the provided values,\nand any new fields provided are merged with the existing trace data. If the\nname does not match, a new trace is created with given set of spans.",
"request": {
"$ref": "BatchUpdateSpansRequest"
}
}
}
}
}
}
},
"parameters": {
"pp": {
"location": "query",
"description": "Pretty-print response.",
"type": "boolean",
"default": "true"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"type": "string",
"location": "query"
},
"bearer_token": {
"description": "OAuth bearer token.",
"type": "string",
"location": "query"
},
"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"
},
"fields": {
"location": "query",
"description": "Selector specifying which fields to include in a partial response.",
"type": "string"
},
"uploadType": {
"location": "query",
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"type": "string"
},
"$.xgafv": {
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"enum": [
"1",
"2"
],
"description": "V1 error format.",
"type": "string"
},
"callback": {
"description": "JSONP",
"type": "string",
"location": "query"
},
"alt": {
"description": "Data format for response.",
"default": "json",
"enum": [
"json",
"media",
"proto"
],
"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"
},
"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": {
"location": "query",
"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"
}
},
"version": "v1",
"baseUrl": "https://tracing.googleapis.com/",
"servicePath": "",
"description": "Send and retrieve trace data from Google Stackdriver Trace.\n",
"kind": "discovery#restDescription",
"basePath": "",
"revision": "20170320",
"documentationLink": "https://cloud.google.com/trace",
"id": "tracing:v1",
"discoveryVersion": "v1",
"version_module": "True",
"schemas": {
"ListSpansResponse": {
"description": "The response message for the `ListSpans` method.",
"type": "object",
"properties": {
"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"
},
"spans": {
"description": "The requested spans if there are any in the specified trace.",
"type": "array",
"items": {
"$ref": "Span"
}
}
},
"id": "ListSpansResponse"
},
"NetworkEvent": {
"description": "An event describing an RPC message sent/received on the network.",
"type": "object",
"properties": {
"kernelTime": {
"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": {
"description": "Type of NetworkEvent. Indicates whether the RPC message was sent or\nreceived.",
"type": "string",
"enumDescriptions": [
"Unknown event type.",
"Indicates a sent RPC message.",
"Indicates a received RPC message."
],
"enum": [
"TYPE_UNSPECIFIED",
"SENT",
"RECV"
]
},
"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"
},
"SpanUpdates": {
"description": "Collection of spans to update.",
"type": "object",
"properties": {
"spans": {
"description": "A collection of spans.",
"type": "array",
"items": {
"$ref": "Span"
}
}
},
"id": "SpanUpdates"
},
"StackFrame": {
"description": "Represents a single stack frame in a stack trace.",
"type": "object",
"properties": {
"fileName": {
"description": "The filename of the file containing this frame.",
"type": "string"
},
"sourceVersion": {
"description": "The version of the deployed source code.",
"type": "string"
},
"originalFunctionName": {
"description": "Used when the function name is\n[mangled](http://www.avabodh.com/cxxin/namemangling.html). May be\nfully-qualified.",
"type": "string"
},
"functionName": {
"description": "The fully-qualified name that uniquely identifies this function or\nmethod.",
"type": "string"
},
"lineNumber": {
"description": "Line number of the frame.",
"format": "int64",
"type": "string"
},
"loadModule": {
"$ref": "Module",
"description": "Binary module the code is loaded from."
},
"columnNumber": {
"description": "Column number is important in JavaScript (anonymous functions).\nMay not be available in some languages.",
"format": "int64",
"type": "string"
}
},
"id": "StackFrame"
},
"Link": {
"description": "A pointer from this span to another span in a different `Trace`. Used\n(for example) in batching operations, where a single batch handler\nprocesses multiple requests from different traces.",
"type": "object",
"properties": {
"type": {
"description": "The relationship of the current span relative to the linked span.",
"type": "string",
"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"
]
},
"traceId": {
"description": "The ID of the parent trace of the linked span.",
"type": "string"
},
"spanId": {
"description": "The `id` of the linked span.",
"format": "uint64",
"type": "string"
}
},
"id": "Link"
},
"Annotation": {
"description": "Text annotation with a set of attributes.",
"type": "object",
"properties": {
"description": {
"description": "A user-supplied message describing the event.",
"type": "string"
},
"attributes": {
"additionalProperties": {
"$ref": "AttributeValue"
},
"description": "A set of attributes on the annotation.",
"type": "object"
}
},
"id": "Annotation"
},
"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",
"properties": {
"name": {
"description": "A globally unique identifier for the trace in the format\n`projects/PROJECT_NUMBER/traces/TRACE_ID`. `TRACE_ID` is a base16-encoded\nstring of a 128-bit number and is required to be 32 char long.",
"type": "string"
}
},
"id": "Trace"
},
"Module": {
"description": "Binary module.",
"type": "object",
"properties": {
"module": {
"description": "E.g. main binary, kernel modules, and dynamic libraries\nsuch as libc.so, sharedlib.so",
"type": "string"
},
"buildId": {
"description": "Build_id is a unique identifier for the module,\nusually a hash of its contents",
"type": "string"
}
},
"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` which 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 purpose.\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": {
"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"
},
"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"
}
}
},
"id": "Status"
},
"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 `{}`.",
"type": "object",
"properties": {},
"id": "Empty"
},
"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",
"properties": {
"localStartTime": {
"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"
},
"hasRemoteParent": {
"description": "True if this span has a remote parent (is an RPC server span).",
"type": "boolean"
},
"localEndTime": {
"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"
},
"parentId": {
"description": "ID of the parent span. If this is a root span, the value must be `0` or\nempty.",
"format": "uint64",
"type": "string"
},
"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.",
"type": "array",
"items": {
"$ref": "TimeEvent"
}
},
"status": {
"description": "An optional final status for this span.",
"$ref": "Status"
},
"name": {
"description": "Name of the span. The span name is sanitized and displayed in the\nStackdriver Trace tool in the {% dynamic print site_values.console_name %}.\nThe name may be a method name or some other per-call site name.\nFor the same executable and the same call point, a best practice is\nto use a consistent name, which makes it easier to correlate\ncross-trace spans.",
"type": "string"
},
"stackTrace": {
"$ref": "StackTrace",
"description": "Stack trace captured at the start of the span."
},
"links": {
"description": "A collection of links, which are references from this span to another span\nin a different trace.",
"type": "array",
"items": {
"$ref": "Link"
}
},
"attributes": {
"additionalProperties": {
"$ref": "AttributeValue"
},
"description": "Properties of a span in key:value format. The maximum length for the\nkey is 128 characters. The value can be a string (up to 2000 characters),\nint, or boolean.\n\nSome common pair examples:\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": {
"description": "Identifier for the span. Must be a 64-bit integer other than 0 and\nunique within a trace.",
"format": "uint64",
"type": "string"
}
},
"id": "Span"
},
"ListTracesResponse": {
"description": "The response message for the `ListTraces` method.",
"type": "object",
"properties": {
"traces": {
"description": "List of trace records returned.",
"type": "array",
"items": {
"$ref": "Trace"
}
},
"nextPageToken": {
"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.",
"type": "string"
}
},
"id": "ListTracesResponse"
},
"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": {
"description": "A string value.",
"type": "string"
},
"boolValue": {
"description": "A boolean value.",
"type": "boolean"
}
},
"id": "AttributeValue"
},
"BatchUpdateSpansRequest": {
"description": "The request message for the `BatchUpdateSpans` method.",
"type": "object",
"properties": {
"spanUpdates": {
"additionalProperties": {
"$ref": "SpanUpdates"
},
"description": "A map from trace name to spans to be stored or updated.",
"type": "object"
}
},
"id": "BatchUpdateSpansRequest"
},
"StackTrace": {
"description": "StackTrace collected in a trace.",
"type": "object",
"properties": {
"stackFrame": {
"description": "Stack frames of this stack trace.",
"type": "array",
"items": {
"$ref": "StackFrame"
}
},
"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 occurance 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"
}
},
"id": "StackTrace"
},
"TimeEvent": {
"description": "A time-stamped annotation in the Span.",
"type": "object",
"properties": {
"annotation": {
"$ref": "Annotation",
"description": "One or more key:value pairs."
},
"localTime": {
"description": "The timestamp indicating the time the event occurred.",
"format": "google-datetime",
"type": "string"
},
"networkEvent": {
"$ref": "NetworkEvent",
"description": "An event describing an RPC message sent/received on the network."
}
},
"id": "TimeEvent"
}
},
"protocol": "rest",
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"canonicalName": "Tracing",
"auth": {
"oauth2": {
"scopes": {
"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"
},
"https://www.googleapis.com/auth/trace.readonly": {
"description": "Read Trace data for a project or application"
}
}
}
},
"rootUrl": "https://tracing.googleapis.com/",
"ownerDomain": "google.com",
"name": "tracing",
"batchPath": "batch"
}