From commits-return-1044-archive-asf-public=cust-asf.ponee.io@zipkin.apache.org Fri May 10 00:58:42 2019
Return-Path:
X-Original-To: archive-asf-public@cust-asf.ponee.io
Delivered-To: archive-asf-public@cust-asf.ponee.io
Received: from mail.apache.org (hermes.apache.org [207.244.88.153])
by mx-eu-01.ponee.io (Postfix) with SMTP id 38780180649
for ; Fri, 10 May 2019 02:58:42 +0200 (CEST)
Received: (qmail 49718 invoked by uid 500); 10 May 2019 00:58:41 -0000
Mailing-List: contact commits-help@zipkin.apache.org; run by ezmlm
Precedence: bulk
List-Help:
List-Unsubscribe:
List-Post:
List-Id:
Reply-To: dev@zipkin.apache.org
Delivered-To: mailing list commits@zipkin.apache.org
Received: (qmail 49709 invoked by uid 99); 10 May 2019 00:58:41 -0000
Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70)
by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 May 2019 00:58:41 +0000
Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33)
id 77BE4872E3; Fri, 10 May 2019 00:58:41 +0000 (UTC)
Date: Fri, 10 May 2019 00:58:41 +0000
To: "commits@zipkin.apache.org"
Subject: [incubator-zipkin-website] branch asf-site updated: Automatic site
generation from 72780f6
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-ID: <155744992141.22856.2586923657452990882@gitbox.apache.org>
From: abesto@apache.org
X-Git-Host: gitbox.apache.org
X-Git-Repo: incubator-zipkin-website
X-Git-Refname: refs/heads/asf-site
X-Git-Reftype: branch
X-Git-Oldrev: 5d33df88abd7b68216b3ad784902b6467e10766d
X-Git-Newrev: 6acda477e4771bf39f828e6a57b77f7afdf1958d
X-Git-Rev: 6acda477e4771bf39f828e6a57b77f7afdf1958d
X-Git-NotificationType: ref_changed_plus_diff
X-Git-Multimail-Version: 1.5.dev
Auto-Submitted: auto-generated
This is an automated email from the ASF dual-hosted git repository.
abesto pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-zipkin-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 6acda47 Automatic site generation from 72780f6
6acda47 is described below
commit 6acda477e4771bf39f828e6a57b77f7afdf1958d
Author: jenkins
AuthorDate: Fri May 10 00:58:34 2019 +0000
Automatic site generation from 72780f6
---
Gemfile.lock | 2 +-
Jenkinsfile | 8 +-
pages/extensions_choices.html | 2 +-
zipkin-api/DISCLAIMER | 5 -
zipkin-api/Jenkinsfile | 78 -------
zipkin-api/LICENSE | 201 ----------------
zipkin-api/NOTICE | 5 -
zipkin-api/zipkin-api.yaml | 441 -----------------------------------
zipkin-api/zipkin.proto | 237 -------------------
zipkin-api/zipkin2-api.yaml | 521 ------------------------------------------
10 files changed, 6 insertions(+), 1494 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 1095274..58842ea 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -205,7 +205,7 @@ GEM
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.11.3)
- multipart-post (2.0.0)
+ multipart-post (2.1.0)
nokogiri (1.10.3)
mini_portile2 (~> 2.4.0)
octokit (4.14.0)
diff --git a/Jenkinsfile b/Jenkinsfile
index ed4f762..9b49bb9 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -37,7 +37,7 @@ pipeline {
steps {
sh 'env'
sh 'pwd'
- sh 'ls -lR'
+ sh 'ls'
sh 'alias'
sh 'git config --list --local'
sh 'git config --list --global'
@@ -80,9 +80,9 @@ pipeline {
}
stage('Publish') {
-// when {
-// branch 'master'
-// }
+ when {
+ branch 'master'
+ }
environment {
// GH Personal access token @abesto
GITUSER = credentials('2d27b827-20c2-4173-ac84-f3abc308fc88')
diff --git a/pages/extensions_choices.html b/pages/extensions_choices.html
index 04952de..ef04930 100644
--- a/pages/extensions_choices.html
+++ b/pages/extensions_choices.html
@@ -261,7 +261,7 @@ same data sent to the default Zipkin server.
Pitchfork
- - Pitchfork exposes the same HTTP POST endpoints Zipkin does
+
- Pitchfork exposes the same HTTP POST endpoints Zipkin does. It can also consume spans from a Kafka topic or a RabbitMQ queue.
- http port 9411 accepts
/api/v1/spans
(thrift, json) and /api/v2/spans
(json, proto) POST requests.
diff --git a/zipkin-api/DISCLAIMER b/zipkin-api/DISCLAIMER
deleted file mode 100644
index f73ab06..0000000
--- a/zipkin-api/DISCLAIMER
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Zipkin (incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
-Incubation is required of all newly accepted projects until a further review indicates
-that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.
-While incubation status is not necessarily a reflection of the completeness or stability of the code,
-it does indicate that the project has yet to be fully endorsed by the ASF.
diff --git a/zipkin-api/Jenkinsfile b/zipkin-api/Jenkinsfile
deleted file mode 100644
index 9a05384..0000000
--- a/zipkin-api/Jenkinsfile
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-pipeline {
- agent {
- label 'ubuntu'
- }
-
- tools {
- jdk 'JDK 1.8 (latest)'
- }
-
- options {
- buildDiscarder(logRotator(
- numToKeepStr: '30',
- ))
- timestamps()
- skipStagesAfterUnstable()
- timeout time: 30, unit: 'MINUTES'
- }
-
- stages {
- stage('SCM Checkout') {
- steps {
- deleteDir()
- checkout scm
- }
- }
-
- stage('Check environment') {
- steps {
- sh 'env'
- sh 'pwd'
- sh 'ls'
- sh 'git status'
- }
- }
-
- stage('Publish snapshot') {
- when {
- branch 'master'
- }
- steps {
- sh './mvnw deploy -Papache-release -Dgpg.skip=true -DskipTests --batch-mode -nsu'
- }
- }
- }
-
- post {
- changed {
- script {
- if (env.BRANCH_NAME == 'master') {
- emailext(
- subject: "[${currentBuild.projectName}] master is ${currentBuild.currentResult} (#${currentBuild.number})",
- to: 'commits@zipkin.apache.org',
- replyTo: 'dev@zipkin.apache.org',
- body: "See <${currentBuild.absoluteUrl}>"
- )
- }
- }
-
- }
- }
-}
diff --git a/zipkin-api/LICENSE b/zipkin-api/LICENSE
deleted file mode 100644
index 8dada3e..0000000
--- a/zipkin-api/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/zipkin-api/NOTICE b/zipkin-api/NOTICE
deleted file mode 100644
index d2f1493..0000000
--- a/zipkin-api/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Language independent interchange formats for Apache Zipkin (incubating)
-Copyright 2019 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
diff --git a/zipkin-api/zipkin-api.yaml b/zipkin-api/zipkin-api.yaml
deleted file mode 100644
index 2f4a190..0000000
--- a/zipkin-api/zipkin-api.yaml
+++ /dev/null
@@ -1,441 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-swagger: "2.0"
-info:
- version: "1.0.0"
- title: Zipkin API
- description: |
- Zipkin's Query api is rooted at `api/v1`, on a host that by default listens
- on port 9411. It primarily serves the zipkin-ui, although it includes a POST
- endpoint that can receive spans.
-host: localhost:9411
-basePath: /api/v1
-schemes:
- - http
- - https
-consumes:
- - application/json
-produces:
- - application/json
-paths:
- /services:
- get:
- description: |
- Returns a list of all service names associated with annotations.
- responses:
- '200':
- description: Succes
- schema:
- type: array
- items:
- type: string
- '400':
- description: Bad Request Error
- /spans:
- get:
- description: Get all the span names logged by a particular service
- parameters:
- - name: serviceName
- in: query
- required: true
- description: |
- Ex zipkin-server (required) - service that logged an annotation in a
- trace. The /services endpoint enumerates possible input values.
- type: string
- responses:
- '200':
- description: OK
- schema:
- type: array
- items:
- type: string
- '400':
- description: Bad Request Error
- post:
- description: |
- Uploads a list of spans encoded per content-type, for example json
- or thrift (TBinaryProtocol big-endian).
- consumes:
- - application/json
- - application/x-thrift
- produces: []
- parameters:
- - name: span
- in: body
- description: A list of spans that belong to any trace.
- required: true
- schema:
- $ref: "#/definitions/ListOfSpans"
- responses:
- '202':
- description: Accepted
- /traces:
- get:
- description: |
- Invoking this request retrieves traces matching the below filters.
-
- Results should be filtered against endTs, subject to limit and
- lookback. For example, if endTs is 10:20 today, limit is 10, and
- lookback is 7 days, traces returned should be those nearest to 10:20
- today, not 10:20 a week ago.
-
- Time units of endTs and lookback are milliseconds as opposed to
- microseconds, the grain of Span.timestamp. Milliseconds is a more
- familiar and supported granularity for query, index and windowing
- functions
- parameters:
- - name: serviceName
- in: query
- required: false
- description: |
- Ex zipkin-server - service that logged an annotation in a trace.
- Required when constraining on parameters except time and duration.
- The /services endpoint enumerates possible input values.
- type: string
- - name: spanName
- in: query
- required: false
- description: |
- Ex my_span_name - name of a span in a trace.
- Only return traces that contains spans with this name.
- type: string
- - name: annotationQuery
- in: query
- type: string
- required: false
- description: |
- Ex. `http.uri=/foo and retried` - If key/value (has an `=`),
- constrains against Span.binaryAnnotations of time string. If just
- a word, constrains against Span.annotations. Any values are AND
- against eachother. This means a span in the trace must match all of
- these.
- - name: minDuration
- in: query
- type: integer
- description: |
- Ex. 100000 (for 100ms). Only return traces whose `Span.duration` is
- greater than or equal to minDuration microseconds.
- - name: maxDuration
- in: query
- type: integer
- description: |
- Only return traces whose Span.duration is less than or equal to
- `maxDuration` microseconds. Only valid with minDuration.
- - name: endTs
- in: query
- type: integer
- format: int64
- description: |
- Only return traces where all Span.timestamp are at or before this
- time in epoch milliseconds. Defaults to current time.
- - name: lookback
- type: integer
- format: int64
- in: query
- description: |
- Only return traces where all Span.timestamp are at or after
- (`endTs - * lookback`) in milliseconds. Defaults to `endTs`, limited
- to a system parameter `QUERY_LOOKBACK`.
- - name: limit
- in: query
- default: 10
- type: integer
- description: |
- Maximum number of traces to return. Defaults to 10
- responses:
- '200':
- description: OK
- schema:
- $ref: "#/definitions/ListOfTraces"
- /trace/{traceId}:
- get:
- parameters:
- - name: traceId
- in: path
- required: true
- description: the 64 or 128-bit big endian, hex-encoded id of the trace as a path parameter.
- type: string
- - name: raw
- in: query
- required: false
- description: |
- Note this flag has no value. Ex. /trace/{traceId}?raw
-
- Normally, the trace endpoint cleans trace data. For example, it merges
- spans by id, adds missing timestamp or duration, corrects clock skew..
-
- Specifying this flag is a debug case, when you are debugging zipkin
- logic or zipkin instrumentation, and want to see the input to these
- adjusters. For example, this might explain or rule out clock skew.
- type: boolean
- responses:
- '200':
- description: OK
- schema:
- $ref: "#/definitions/Trace"
- '404':
- description: "`traceId` not found"
- /dependencies:
- get:
- description: |
- Returns dependency links derived from spans.
-
- Span names are in lowercase, rpc method for example. Conventionally,
- when the span name isn't known, name = "unknown".
- parameters:
- - name: endTs
- in: query
- description: |
- Only return links from spans where `Span.timestamp` are at or before
- this time in epoch milliseconds.
- required: true
- type: integer
- format: int64
- - name: lookback
- in: query
- description: |
- Only return links from spans where all Span.timestamp are at or after
- (`endTs - * lookback`) in milliseconds. Defaults to `endTs`, limited
- to a system parameter `QUERY_LOOKBACK`.
- type: integer
- format: int64
- responses:
- '200':
- description: OK
- schema:
- type: array
- title: ListOfDependencyLinks
- items:
- $ref: "#/definitions/DependencyLink"
-definitions:
- Endpoint:
- type: object
- title: Endpoint
- description: The network context of a node in the service graph
- required:
- - serviceName
- properties:
- serviceName:
- type: string
- description: |
- Lower-case label of this node in the service graph, such as "favstar". Set
- to empty string if unknown.
-
- This is a primary label for trace lookup and aggregation, so it should be
- intuitive and consistent. Many use a name from service discovery.
- ipv4:
- type: string
- format: ipv4
- description: |
- The text representation of the primary IPv4 address associated with this
- connection. Ex. 192.168.99.100 Absent if unknown.
- ipv6:
- type: string
- format: ipv6
- description: |
- The text representation of the primary IPv6 address associated with a
- connection. Ex. 2001:db8::c001 Absent if unknown.
-
- Prefer using the ipv4 field for mapped addresses.
- port:
- type: integer
- description: |
- Depending on context, this could be a listen port or the client-side of a
- socket. Absent if unknown. Please don't set to zero.
- Annotation:
- title: Annotation
- type: object
- required:
- - timestamp
- - value
- description: |
- Associates an event that explains latency with a timestamp.
- Unlike log statements, annotations are often codes. Ex. "sr" for ServerReceive
- properties:
- timestamp:
- type: integer
- description: |
- Epoch **microseconds** of this event.
-
- For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC
-
- This value should be set directly by instrumentation, using the most precise
- value possible. For example, gettimeofday or multiplying epoch millis by 1000.
- value:
- type: string
- description: |
- Usually a short tag indicating an event, like "sr"
-
- While possible to add larger data, such as garbage collection details, low
- cardinality event names both keep the size of spans down and also are easy
- to search against.
- endpoint:
- $ref: "#/definitions/Endpoint"
- description: |
- The host that recorded this span, primarily for query by service name.
-
- Instrumentation should always record this. Usually, absent implies late
- data. The IP address corresponding to this is usually the site local or
- advertised service address. When present, the port indicates the listen
- port.
- BinaryAnnotation:
- title: BinaryAnnotation
- type: object
- required:
- - key
- - value
- description: |
- Adds context to a span, for search, viewing and analysis.
-
- For example, a key "your_app.version" would let you lookup traces by version.
- A tag "sql.query" isn't searchable, but it can help in debugging when viewing
- a trace.
- properties:
- key:
- type: string
- value:
- type: string
- endpoint:
- $ref: "#/definitions/Endpoint"
- description: |
- The host that recorded this span, primarily for query by service name.
-
- There is an exception, when the key is "sa", "ca" or "ma" this is an
- address annotation. In such case, the endpoint is not what recorded the
- span, rather the remote address. The value field is set to boolean true
- in this case. This feature was refactored in v2 format as "remoteEndpoint"
- ListOfSpans:
- title: ListOfSpans
- description: 'A list of spans with possibly different trace ids, in no particular order'
- type: array
- items:
- $ref: "#/definitions/Span"
- Trace:
- title: Trace
- type: array
- description: 'List of spans who have the same trace id. Spans in the trace, and annotations in a span are sorted ascending by timestamp. ie first event should be first in the spans list.'
- items:
- $ref: "#/definitions/Span"
- ListOfTraces:
- title: ListOfTraces
- type: array
- items:
- $ref: "#/definitions/Trace"
- Span:
- title: Span
- type: object
- required:
- - traceId
- - id
- - name
- properties:
- traceId:
- type: string
- maxLength: 32
- minLength: 16
- pattern: "[a-z0-9]{16,32}"
- description: |
- Randomly generated, unique identifier for a trace, set on all spans within it.
-
- Encoded as 16 or 32 lowercase hex characters in big endian byte order,
- corresponding to 64 or 128 bits,
- For example, a 128bit trace ID looks like 4e441824ec2b6a44ffdc9bb9a6453df3
- name:
- type: string
- description: |
- The logical operation this span represents in lowercase (e.g. rpc method).
- Set to empty string if unknown.
-
- As these are lookup labels, take care to ensure names are low cardinality.
- For example, do not embed variables into the name.
- parentId:
- type: string
- pattern: "[a-z0-9]{16}"
- maxLength: 16
- minLength: 16
- description: 'The parent span ID or absent if this the root span in a trace.'
- id:
- type: string
- maxLength: 16
- minLength: 16
- pattern: "[a-z0-9]{16}"
- description: |
- Unique 64bit identifier for this operation within the trace.
-
- Encoded as 16 lowercase hex characters. For example ffdc9bb9a6453df3
- timestamp:
- type: integer
- format: int64
- description: |
- Epoch microseconds of the start of this span, possibly absent if
- incomplete.
-
- For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC
-
- This value should be set directly by instrumentation, using the most
- precise value possible. For example, gettimeofday or multiplying epoch
- millis by 1000.
-
- There are three known edge-cases where this could be reported absent.
- * A span was allocated but never started (ex not yet received a timestamp)
- * The span's start event was lost
- * Data about a completed span (ex tags) were sent after the fact
- duration:
- type: integer
- format: int64
- minimum: 1
- description: |
- Duration in **microseconds** of the critical path, if known. Durations of less
- than one are rounded up. Duration of children can be longer than their
- parents due to asynchronous operations.
-
- For example 150 milliseconds is 150000 microseconds.
- debug:
- type: boolean
- description: |
- True is a request to store this span even if it overrides sampling policy.
-
- This is true when the `X-B3-Flags` header has a value of 1.
- annotations:
- title: ListOfAnnotations
- type: array
- description: 'Associates events that explain latency with the time they happened.'
- items:
- $ref: '#/definitions/Annotation'
- binaryAnnotations:
- title: ListOfBinaryAnnotations
- type: array
- description: 'Binary Annotations are tags that give your span context for search, viewing and analysis.'
- items:
- $ref: '#/definitions/BinaryAnnotation'
- DependencyLink:
- title: DependencyLink
- type: object
- required:
- - parent
- - child
- - callCount
- properties:
- parent:
- type: string
- child:
- type: string
- callCount:
- type: integer
- errorCount:
- type: integer
diff --git a/zipkin-api/zipkin.proto b/zipkin-api/zipkin.proto
deleted file mode 100644
index 9e65112..0000000
--- a/zipkin-api/zipkin.proto
+++ /dev/null
@@ -1,237 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-syntax = "proto3";
-
-package zipkin.proto3;
-
-// In Java, the closest model type to this proto is in the "zipkin2" package
-option java_package = "zipkin2.proto3";
-option java_multiple_files = true;
-
-// A span is a single-host view of an operation. A trace is a series of spans
-// (often RPC calls) which nest to form a latency tree. Spans are in the same
-// trace when they share the same trace ID. The parent_id field establishes the
-// position of one span in the tree.
-//
-// The root span is where parent_id is Absent and usually has the longest
-// duration in the trace. However, nested asynchronous work can materialize as
-// child spans whose duration exceed the root span.
-//
-// Spans usually represent remote activity such as RPC calls, or messaging
-// producers and consumers. However, they can also represent in-process
-// activity in any position of the trace. For example, a root span could
-// represent a server receiving an initial client request. A root span could
-// also represent a scheduled job that has no remote context.
-//
-// Encoding notes:
-//
-// Epoch timestamp are encoded fixed64 as varint would also be 8 bytes, and more
-// expensive to encode and size. Duration is stored uint64, as often the numbers
-// are quite small.
-//
-// Default values are ok, as only natural numbers are used. For example, zero is
-// an invalid timestamp and an invalid duration, false values for debug or shared
-// are ignorable, and zero-length strings also coerce to null.
-//
-// The next id is 14.
-//
-// Note fields up to 15 take 1 byte to encode. Take care when adding new fields
-// https://developers.google.com/protocol-buffers/docs/proto3#assigning-tags
-message Span {
- // Randomly generated, unique identifier for a trace, set on all spans within
- // it.
- //
- // This field is required and encoded as 8 or 16 bytes, in big endian byte
- // order.
- bytes trace_id = 1;
- // The parent span ID or absent if this the root span in a trace.
- bytes parent_id = 2;
- // Unique identifier for this operation within the trace.
- //
- // This field is required and encoded as 8 opaque bytes.
- bytes id = 3;
- // When present, kind clarifies timestamp, duration and remote_endpoint. When
- // absent, the span is local or incomplete. Unlike client and server, there
- // is no direct critical path latency relationship between producer and
- // consumer spans.
- enum Kind {
- // Default value interpreted as absent.
- SPAN_KIND_UNSPECIFIED = 0;
- // The span represents the client side of an RPC operation, implying the
- // following:
- //
- // timestamp is the moment a request was sent to the server.
- // duration is the delay until a response or an error was received.
- // remote_endpoint is the server.
- CLIENT = 1;
- // The span represents the server side of an RPC operation, implying the
- // following:
- //
- // timestamp is the moment a client request was received.
- // duration is the delay until a response was sent or an error.
- // remote_endpoint is the client.
- SERVER = 2;
- // The span represents production of a message to a remote broker, implying
- // the following:
- //
- // timestamp is the moment a message was sent to a destination.
- // duration is the delay sending the message, such as batching.
- // remote_endpoint is the broker.
- PRODUCER = 3;
- // The span represents consumption of a message from a remote broker, not
- // time spent servicing it. For example, a message processor would be an
- // in-process child span of a consumer. Consumer spans imply the following:
- //
- // timestamp is the moment a message was received from an origin.
- // duration is the delay consuming the message, such as from backlog.
- // remote_endpoint is the broker.
- CONSUMER = 4;
- }
- // When present, used to interpret remote_endpoint
- Kind kind = 4;
- // The logical operation this span represents in lowercase (e.g. rpc method).
- // Leave absent if unknown.
- //
- // As these are lookup labels, take care to ensure names are low cardinality.
- // For example, do not embed variables into the name.
- string name = 5;
- // Epoch microseconds of the start of this span, possibly absent if
- // incomplete.
- //
- // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC
- //
- // This value should be set directly by instrumentation, using the most
- // precise value possible. For example, gettimeofday or multiplying epoch
- // millis by 1000.
- //
- // There are three known edge-cases where this could be reported absent.
- // - A span was allocated but never started (ex not yet received a timestamp)
- // - The span's start event was lost
- // - Data about a completed span (ex tags) were sent after the fact
- fixed64 timestamp = 6;
- // Duration in microseconds of the critical path, if known. Durations of less
- // than one are rounded up. Duration of children can be longer than their
- // parents due to asynchronous operations.
- //
- // For example 150 milliseconds is 150000 microseconds.
- uint64 duration = 7;
- // The host that recorded this span, primarily for query by service name.
- //
- // Instrumentation should always record this. Usually, absent implies late
- // data. The IP address corresponding to this is usually the site local or
- // advertised service address. When present, the port indicates the listen
- // port.
- Endpoint local_endpoint = 8;
- // When an RPC (or messaging) span, indicates the other side of the
- // connection.
- //
- // By recording the remote endpoint, your trace will contain network context
- // even if the peer is not tracing. For example, you can record the IP from
- // the "X-Forwarded-For" header or the service name and socket of a remote
- // peer.
- Endpoint remote_endpoint = 9;
- // Associates events that explain latency with the time they happened.
- repeated Annotation annotations = 10;
- // Tags give your span context for search, viewing and analysis.
- //
- // For example, a key "your_app.version" would let you lookup traces by
- // version. A tag "sql.query" isn't searchable, but it can help in debugging
- // when viewing a trace.
- map tags = 11;
- // True is a request to store this span even if it overrides sampling policy.
- //
- // This is true when the "X-B3-Flags" header has a value of 1.
- bool debug = 12;
- // True if we are contributing to a span started by another tracer (ex on a
- // different host).
- bool shared = 13;
-}
-
-// The network context of a node in the service graph.
-//
-// The next id is 5.
-message Endpoint {
- // Lower-case label of this node in the service graph, such as "favstar".
- // Leave absent if unknown.
- //
- // This is a primary label for trace lookup and aggregation, so it should be
- // intuitive and consistent. Many use a name from service discovery.
- string service_name = 1;
- // 4 byte representation of the primary IPv4 address associated with this
- // connection. Absent if unknown.
- bytes ipv4 = 2;
- // 16 byte representation of the primary IPv6 address associated with this
- // connection. Absent if unknown.
- //
- // Prefer using the ipv4 field for mapped addresses.
- bytes ipv6 = 3;
- // Depending on context, this could be a listen port or the client-side of a
- // socket. Absent if unknown.
- int32 port = 4;
-}
-
-// Associates an event that explains latency with a timestamp.
-// Unlike log statements, annotations are often codes. Ex. "ws" for WireSend
-//
-// The next id is 3.
-message Annotation {
- // Epoch microseconds of this event.
- //
- // For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC
- //
- // This value should be set directly by instrumentation, using the most
- // precise value possible. For example, gettimeofday or multiplying epoch
- // millis by 1000.
- fixed64 timestamp = 1;
- // Usually a short tag indicating an event, like "error"
- //
- // While possible to add larger data, such as garbage collection details, low
- // cardinality event names both keep the size of spans down and also are easy
- // to search against.
- string value = 2;
-}
-
-// A list of spans with possibly different trace ids, in no particular order.
-//
-// This is used for all transports: POST, Kafka messages etc. No other fields
-// are expected, This message facilitates the mechanics of encoding a list, as
-// a field number is required. The name of this type is the same in the OpenApi
-// aka Swagger specification. https://zipkin.io/zipkin-api/#/default/post_spans
-message ListOfSpans {
- repeated Span spans = 1;
-}
-
-// Response for SpanService/Report RPC. This response currently does not return
-// any information beyond indicating that the request has finished. That said,
-// it may be extended in the future.
-message ReportResponse {
-}
-
-// SpanService allows reporting spans using gRPC, as opposed to HTTP POST
-// reporting. Implementations are asynchronous and may drop spans for reasons
-// of sampling or storage availability. While this is primarily used to store
-// spans, other operations may take place such as aggregation of service
-// dependencies or data cleaning.
-service SpanService {
-
- // Report the provided spans to the collector. Analogous to the HTTP POST
- // /api/v2/spans endpoint. Spans are not required to be complete or belonging
- // to the same trace.
- rpc Report(ListOfSpans) returns (ReportResponse) {}
-}
diff --git a/zipkin-api/zipkin2-api.yaml b/zipkin-api/zipkin2-api.yaml
deleted file mode 100644
index 9d25da7..0000000
--- a/zipkin-api/zipkin2-api.yaml
+++ /dev/null
@@ -1,521 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-swagger: "2.0"
-info:
- version: "1.0.0"
- title: Zipkin API
- description: |
- Zipkin's v2 api currently includes a POST endpoint that can receive spans.
-host: localhost:9411
-basePath: /api/v2
-schemes:
- - http
- - https
-consumes:
- - application/json
-paths:
- /services:
- get:
- description: |
- Returns a list of all service names associated with span endpoints.
- responses:
- '200':
- description: Succes
- schema:
- type: array
- items:
- type: string
- '400':
- description: Bad Request Error
- /spans:
- get:
- description: Get all the span names recorded by a particular service
- parameters:
- - name: serviceName
- in: query
- required: true
- description: |
- Ex favstar (required) - Lower-case label of a node in the service
- graph. The /services endpoint enumerates possible input values.
- type: string
- responses:
- '200':
- description: OK
- schema:
- type: array
- items:
- type: string
- '400':
- description: Bad Request Error
- post:
- description: |
- Uploads a list of spans encoded per content-type, for example json.
- consumes:
- - application/json
- - application/x-protobuf
- produces: []
- parameters:
- - name: spans
- in: body
- description: A list of spans that belong to any trace.
- required: true
- schema:
- $ref: "#/definitions/ListOfSpans"
- responses:
- '202':
- description: Accepted
- /traces:
- get:
- description: |
- Invoking this request retrieves traces matching the below filters.
-
- Results should be filtered against endTs, subject to limit and
- lookback. For example, if endTs is 10:20 today, limit is 10, and
- lookback is 7 days, traces returned should be those nearest to 10:20
- today, not 10:20 a week ago.
-
- Time units of endTs and lookback are milliseconds as opposed to
- microseconds, the grain of Span.timestamp. Milliseconds is a more
- familiar and supported granularity for query, index and windowing
- functions
- parameters:
- - name: serviceName
- in: query
- required: false
- description: |
- Ex favstar (required) - Lower-case label of a node in the service
- graph. The /services endpoint enumerates possible input values.
- type: string
- - name: spanName
- in: query
- required: false
- description: |
- Ex get - name of a span in a trace.
- Only return traces that contains spans with this name.
- type: string
- - name: annotationQuery
- in: query
- type: string
- required: false
- description: |
- Ex. `http.uri=/foo and retried` - If key/value (has an `=`),
- constrains against Span.tags entres. If just a word, constrains
- against Span.annotations[].value or Span.tags[].key. Any values are
- AND against eachother. This means a span in the trace must match
- all of these.
- - name: minDuration
- in: query
- type: integer
- description: |
- Ex. 100000 (for 100ms). Only return traces whose `Span.duration` is
- greater than or equal to minDuration microseconds.
- - name: maxDuration
- in: query
- type: integer
- description: |
- Only return traces whose Span.duration is less than or equal to
- `maxDuration` microseconds. Only valid with minDuration.
- - name: endTs
- in: query
- type: integer
- format: int64
- description: |
- Only return traces where all Span.timestamp are at or before this
- time in epoch milliseconds. Defaults to current time.
- - name: lookback
- type: integer
- format: int64
- in: query
- description: |
- Only return traces where all Span.timestamp are at or after (endTs
- - * lookback) in milliseconds. Defaults to endTs, limited to a
- system parameter QUERY_LOOKBACK
- - name: limit
- in: query
- default: 10
- type: integer
- description: |
- Maximum number of traces to return. Defaults to 10
- responses:
- '200':
- description: OK
- schema:
- $ref: "#/definitions/ListOfTraces"
- /trace/{traceId}:
- get:
- parameters:
- - name: traceId
- in: path
- required: true
- type: string
- maxLength: 32
- minLength: 16
- pattern: "[a-z0-9]{16,32}"
- description: |
- Trace identifier, set on all spans within it.
-
- Encoded as 16 or 32 lowercase hex characters corresponding to 64 or 128 bits.
- For example, a 128bit trace ID looks like 4e441824ec2b6a44ffdc9bb9a6453df3
- responses:
- '200':
- description: OK
- schema:
- $ref: "#/definitions/Trace"
- '404':
- description: "`traceId` not found"
- /dependencies:
- get:
- description: |
- Returns service links derived from spans.
- parameters:
- - name: endTs
- in: query
- description: |
- only return links from spans where `Span.timestamp` are at or before
- this time in epoch milliseconds.
- required: true
- type: integer
- format: int64
- - name: lookback
- in: query
- description: |
- only return links where all Span.timestamp are at or after
- (`endTs - * lookback`) in milliseconds. Defaults to `endTs`, limited
- to a system parameter `QUERY_LOOKBACK`
- type: integer
- format: int64
- responses:
- '200':
- description: OK
- schema:
- type: array
- title: ListOfDependencyLinks
- items:
- $ref: "#/definitions/DependencyLink"
- /autocompleteKeys:
- get:
- description: |
- Returns a subset of keys from Span.tags configured for value autocompletion.
- This helps sites populate common keys into the annotationQuery parameter of the
- /traces endpoint. For example, a UI can allow users to select site-specific
- keys from a drop-down as opposed to typing them in manually. This helps guide
- users towards the more correct keys and avoids typos or formatting problems.
- responses:
- '200':
- description: Success is a list of site-specific keys, such as environment.
- schema:
- type: array
- items:
- type: string
- '400':
- description: Bad Request Error
- /autocompleteValues:
- get:
- description: |
- Returns all known values of Span.tags for the given autocomplete key. Refer
- to the description of /autocompleteKeys for the use case.
- parameters:
- - name: key
- in: query
- required: true
- description: Name of the autocomplete key from the /autocompleteKeys endpoint.
- type: string
- responses:
- '200':
- description: |
- Success result is empty when there are no values or the key was not
- configured.
- schema:
- type: array
- items:
- type: string
- '400':
- description: Bad Request Error
-
-definitions:
- Endpoint:
- type: object
- title: Endpoint
- description: The network context of a node in the service graph
- properties:
- serviceName:
- type: string
- description: |
- Lower-case label of this node in the service graph, such as "favstar". Leave
- absent if unknown.
-
- This is a primary label for trace lookup and aggregation, so it should be
- intuitive and consistent. Many use a name from service discovery.
- ipv4:
- type: string
- format: ipv4
- description: |
- The text representation of the primary IPv4 address associated with this
- connection. Ex. 192.168.99.100 Absent if unknown.
- ipv6:
- type: string
- format: ipv6
- description: |
- The text representation of the primary IPv6 address associated with a
- connection. Ex. 2001:db8::c001 Absent if unknown.
-
- Prefer using the ipv4 field for mapped addresses.
- port:
- type: integer
- description: |
- Depending on context, this could be a listen port or the client-side of a
- socket. Absent if unknown. Please don't set to zero.
- Annotation:
- title: Annotation
- type: object
- description: |
- Associates an event that explains latency with a timestamp.
- Unlike log statements, annotations are often codes. Ex. "ws" for WireSend
-
- Zipkin v1 core annotations such as "cs" and "sr" have been replaced with
- Span.Kind, which interprets timestamp and duration.
- required:
- - timestamp
- - value
- properties:
- timestamp:
- type: integer
- description: |
- Epoch **microseconds** of this event.
-
- For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC
-
- This value should be set directly by instrumentation, using the most precise
- value possible. For example, gettimeofday or multiplying epoch millis by 1000.
- value:
- type: string
- description: |
- Usually a short tag indicating an event, like "error"
-
- While possible to add larger data, such as garbage collection details, low
- cardinality event names both keep the size of spans down and also are easy
- to search against.
- Tags:
- type: object
- title: Tags
- description: |
- Adds context to a span, for search, viewing and analysis.
-
- For example, a key "your_app.version" would let you lookup traces by version.
- A tag "sql.query" isn't searchable, but it can help in debugging when viewing
- a trace.
- additionalProperties:
- type: string
- ListOfSpans:
- title: ListOfSpans
- description: 'A list of spans with possibly different trace ids, in no particular order'
- type: array
- items:
- $ref: "#/definitions/Span"
- Trace:
- title: Trace
- type: array
- description: 'List of spans who have the same trace ID.'
- items:
- $ref: "#/definitions/Span"
- ListOfTraces:
- title: ListOfTraces
- type: array
- items:
- $ref: "#/definitions/Trace"
- Span:
- title: Span
- description: |
- A span is a single-host view of an operation. A trace is a series of spans
- (often RPC calls) which nest to form a latency tree. Spans are in the same
- trace when they share the same trace ID. The parent_id field establishes the
- position of one span in the tree.
-
- The root span is where parent_id is Absent and usually has the longest
- duration in the trace. However, nested asynchronous work can materialize as
- child spans whose duration exceed the root span.
-
- Spans usually represent remote activity such as RPC calls, or messaging
- producers and consumers. However, they can also represent in-process
- activity in any position of the trace. For example, a root span could
- represent a server receiving an initial client request. A root span could
- also represent a scheduled job that has no remote context.
- type: object
- required:
- - traceId
- - id
- properties:
- traceId:
- type: string
- maxLength: 32
- minLength: 16
- pattern: "[a-z0-9]{16,32}"
- description: |
- Randomly generated, unique identifier for a trace, set on all spans within it.
-
- Encoded as 16 or 32 lowercase hex characters corresponding to 64 or 128 bits.
- For example, a 128bit trace ID looks like 4e441824ec2b6a44ffdc9bb9a6453df3
- name:
- type: string
- description: |
- The logical operation this span represents in lowercase (e.g. rpc method).
- Leave absent if unknown.
-
- As these are lookup labels, take care to ensure names are low cardinality.
- For example, do not embed variables into the name.
- parentId:
- type: string
- pattern: "[a-z0-9]{16}"
- maxLength: 16
- minLength: 16
- description: 'The parent span ID or absent if this the root span in a trace.'
- id:
- type: string
- pattern: "[a-z0-9]{16}"
- maxLength: 16
- minLength: 16
- description: |
- Unique 64bit identifier for this operation within the trace.
-
- Encoded as 16 lowercase hex characters. For example ffdc9bb9a6453df3
- kind:
- type: string
- enum:
- - CLIENT
- - SERVER
- - PRODUCER
- - CONSUMER
- description: |
- When present, kind clarifies timestamp, duration and remoteEndpoint. When
- absent, the span is local or incomplete. Unlike client and server, there
- is no direct critical path latency relationship between producer and
- consumer spans.
-
- * `CLIENT`
- * timestamp is the moment a request was sent to the server. (in v1 "cs")
- * duration is the delay until a response or an error was received. (in v1 "cr"-"cs")
- * remoteEndpoint is the server. (in v1 "sa")
- * `SERVER`
- * timestamp is the moment a client request was received. (in v1 "sr")
- * duration is the delay until a response was sent or an error. (in v1 "ss"-"sr")
- * remote_endpoint is the client. (in v1 "ca")
- * `PRODUCER`
- * timestamp is the moment a message was sent to a destination. (in v1 "ms")
- * duration is the delay sending the message, such as batching.
- * remoteEndpoint is the broker.
- * `CONSUMER`
- * timestamp is the moment a message was received from an origin. (in v1 "mr")
- * duration is the delay consuming the message, such as from backlog.
- * remoteEndpoint - Represents the broker. Leave serviceName absent if unknown.
- timestamp:
- type: integer
- format: int64
- description: |
- Epoch microseconds of the start of this span, possibly absent if
- incomplete.
-
- For example, 1502787600000000 corresponds to 2017-08-15 09:00 UTC
-
- This value should be set directly by instrumentation, using the most
- precise value possible. For example, gettimeofday or multiplying epoch
- millis by 1000.
-
- There are three known edge-cases where this could be reported absent.
- * A span was allocated but never started (ex not yet received a timestamp)
- * The span's start event was lost
- * Data about a completed span (ex tags) were sent after the fact
- duration:
- type: integer
- format: int64
- minimum: 1
- description: |
- Duration in **microseconds** of the critical path, if known. Durations of less
- than one are rounded up. Duration of children can be longer than their
- parents due to asynchronous operations.
-
- For example 150 milliseconds is 150000 microseconds.
- debug:
- type: boolean
- description: |
- True is a request to store this span even if it overrides sampling policy.
-
- This is true when the `X-B3-Flags` header has a value of 1.
- shared:
- type: boolean
- description: 'True if we are contributing to a span started by another tracer (ex on a different host).'
- localEndpoint:
- $ref: "#/definitions/Endpoint"
- description: |
- The host that recorded this span, primarily for query by service name.
-
- Instrumentation should always record this. Usually, absent implies late
- data. The IP address corresponding to this is usually the site local or
- advertised service address. When present, the port indicates the listen
- port.
- remoteEndpoint:
- $ref: "#/definitions/Endpoint"
- description: |
- When an RPC (or messaging) span, indicates the other side of the
- connection.
-
- By recording the remote endpoint, your trace will contain network context
- even if the peer is not tracing. For example, you can record the IP from
- the `X-Forwarded-For` header or the service name and socket of a remote
- peer.
- annotations:
- type: array
- uniqueItems: true
- items:
- $ref: '#/definitions/Annotation'
- description: 'Associates events that explain latency with the time they happened.'
- tags:
- $ref: '#/definitions/Tags'
- description: 'Tags give your span context for search, viewing and analysis.'
- DependencyLink:
- title: DependencyLink
- description: |
- The count of traced calls between services, or between a service and a broker.
-
- The direction of the link is parent to child, and can be one of:
- * client to server
- * producer to broker
- * broker to consumer
-
- Note: This is related to span ID count between a sender and receiver, but there
- is nuance that makes it more difficult than counting unique span IDs. Ex. the
- parent or child might be uninstrumented: detected via the remote endpoint. There
- can also be scenarios where both sides are instrumented. Please use existing tools
- such as zipkin-dependencies to derive links as they avoid under or over counting.
- type: object
- required:
- - parent
- - child
- - callCount
- properties:
- parent:
- type: string
- description: 'The service name of the caller: client or message producer or broker.'
- child:
- type: string
- description: 'The service name of the callee: server or message consumer or broker.'
- callCount:
- type: integer
- description: 'Total traced calls made from the parent to the child.'
- errorCount:
- type: integer
- description: 'Total traced calls made from the parent to the child known to be in error.'