This repository has been archived by the owner on Jul 31, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.html
264 lines (199 loc) · 8.97 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
<head>
<link href="http://gmpg.org/xfn/11" rel="profile">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="Hugo 0.30.2" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<title>OpenCensus</title>
<link rel="stylesheet" href="https://opencensus.io/css/print.css" media="print">
<link rel="stylesheet" href="https://opencensus.io/css/poole.css">
<link rel="stylesheet" href="https://opencensus.io/css/syntax.css">
<link rel="stylesheet" href="https://opencensus.io/css/hyde.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Abril+Fatface|PT+Sans:400,400i,700">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144-precomposed.png">
<link rel="shortcut icon" href="/favicon.png">
<link href="https://opencensus.io/index.xml" rel="alternate" type="application/rss+xml" title="OpenCensus" />
</head>
<body class=" ">
<div class="sidebar">
<div class="container sidebar-sticky">
<div class="sidebar-about">
<a href="https://opencensus.io/"><h1>OpenCensus</h1></a>
<p class="lead">
A stats collection and distributed tracing framework
</p>
</div>
<ul class="sidebar-nav">
<li><a href="https://github.com/census-instrumentation" class="fork"> Fork on GitHub</a></li>
</ul>
</div>
</div>
<div class="content container">
<div class="posts">
<div class="post">
<table>
<tr>
<td><img src="/images/opencensus.svg" width="400"></td>
<td>
<h1> What is OpenCensus?</h1>
<p>A single distribution of libraries that automatically collects traces and
metrics from your app, displays them locally, and sends them to any analysis
tool.</p>
</td>
</tr>
</table>
<p>The key features of OpenCensus include:</p>
<ul>
<li>Standard wire protocols and
consistent APIs for handling trace and metric data.</li>
<li>A single set of libraries for many languages, including Java, C++, Go,
.Net, Python, PHP, Node.js, Erlang, and Ruby.</li>
<li>Included integrations with web and RPC frameworks, making traces and
metrics available out of the box.</li>
<li>Included exporters for storage and analysis tools. Right now the list
includes <a href="http://zipkin.io">Zipkin</a>, <a href="http://prometheus.io">Prometheus</a>,
<a href="https://jaeger.readthedocs.io/en/latest/">Jaeger</a>,
<a href="https://cloud.google.com/stackdriver">Stackdriver</a>, and
<a href="https://signalfx.com">SignalFx</a>.</li>
<li>Full open source availability for additional integrations and export options.</li>
<li>No additional server or daemon is required to support OpenCensus.</li>
<li>In process debugging: an optional agent for displaying request and
metrics data on instrumented hosts.</li>
</ul>
<p>The project is<a href="https://github.com/census-instrumentation">hosted on GitHub</a> and
all work occurs there.</p>
<h2 id="concepts">Concepts</h2>
<h3 id="distributed-tracing">Distributed Tracing</h3>
<p>A distributed trace tracks the progression of a single user request as it is
handled by the services and processes that make up an application. Each step is
called a <em>span</em> in the trace. Spans include metadata about the step, including
especially the time spent in the step, called the span’s <em>latency</em>. You can use
this information to tune the performance of your application.</p>
<p>Example: A customer completes an order on the checkout page of an e-commerce
application. The distributed trace for this request typically shows how the
request passes through the front end web service, the user authentication
service, the product database, and so on.</p>
<p>Examples of distributed tracing systems include Zipkin, Jaeger, Datadog APM,
and Stackdriver Trace.</p>
<h3 id="metrics">Metrics</h3>
<p>An application metric records information about some part of your application
system: the number of orders received, the number of failed authentications, the
number of RPC connections received, and so on. You use this information to track
usage trends and to detect anomalies that might indicate a problem.</p>
<p>OpenCensus automatically collects a set of predefined metrics from certain
runtime libraries, and you can easily send your own application and runtime
metrics. Because OpenCensus is linked with your application, it does not send
system-level metrics such as CPU or memory utilization.</p>
<p>Examples of metrics analysis systems are Prometheus, Nagios, Datadog, and
Stackdriver Monitoring.</p>
<h1 id="faq">FAQ</h1>
<h2 id="who-is-behind-opencensus">Who is behind OpenCensus?</h2>
<p>OpenCensus is being developed by a group of cloud providers, Application
Performance Management vendors, and open source contributors.</p>
<p>OpenCensus was initiated by Google, and is based on instrumentation systems used
inside of Google. OpenCensus is a complete rewrite of the Google system.</p>
<h2 id="what-languages-and-integrations-does-opencensus-support">What languages and integrations does OpenCensus support?</h2>
<p>Languages under development:</p>
<table>
<thead>
<tr>
<th align="left">Language</th>
<th align="left">Tracing</th>
<th align="left">Metrics</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-cpp">C++</a></td>
<td align="left">Supported</td>
<td align="left">Supported</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-java">Java (JVM, OpenJDK, Android)</a></td>
<td align="left">Supported</td>
<td align="left">Supported</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-go">Go</a></td>
<td align="left">Supported</td>
<td align="left">Supported</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-python">Python</a></td>
<td align="left">Supported</td>
<td align="left">In Progress</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-php">PHP</a> </td>
<td align="left">Supported </td>
<td align="left">Planned</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-ruby">Ruby</a></td>
<td align="left">Supported</td>
<td align="left">Planned</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-node">Node.js</a></td>
<td align="left">In Progress</td>
<td align="left">In Progress</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-csharp">C#/.Net</a></td>
<td align="left">Planned</td>
<td align="left">Planned</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-erlang">Erlang</a></td>
<td align="left">In Progress</td>
<td align="left">Planned</td>
</tr>
<tr>
<td align="left"><a href="https://github.com/census-instrumentation/opencensus-web">Web JS</a></td>
<td align="left">Planned</td>
<td align="left">Planned</td>
</tr>
</tbody>
</table>
<p>Integrations supported:</p>
<ul>
<li>Spring (planned)</li>
<li>gRPC</li>
<li>JDBC (planned)</li>
<li>net/http</li>
<li>Dropwizard (planned)</li>
</ul>
<h2 id="what-apm-tools-does-opencensus-support">What APM tools does OpenCensus support?</h2>
<p>This list is not yet available. Check out the individual GitHub repos for details.</p>
<h2 id="how-do-i-use-opencensus-in-my-application">How do I use OpenCensus in my application?</h2>
<p>If you are using a supported application framework, follow its instructions
for configuring OpenCensus.</p>
<p>Choose a supported APM tool and follow its configuration instructions for
using OpenCensus.</p>
<p>You can also use the OpenCensus z-Pages to view your
tracing data without an APM tool.</p>
<p>A user’s guide will be released as soon as possible.</p>
<h2 id="what-are-the-z-pages">What are the z-Pages?</h2>
<p>OpenCensus provides a stand-alone application that uses a gRPC channel to
communicate with the OpenCensus code linked into your application. The
application displays configuration parameters and trace information held in
the OpenCensus library.</p>
<h2 id="how-can-i-contribute-to-opencensus">How can I contribute to OpenCensus?</h2>
<ul>
<li>Help people on the discussion forums.</li>
<li>Tell us your success story using OpenCensus.</li>
<li>Tell us how we can improve OpenCensus, and help us do it.</li>
<li>Contribute to an existing library or create one for a new language.</li>
<li>Integrate OpenCensus with a new framework.</li>
<li>Integrate OpenCensus with a new APM tool.</li>
</ul>
<h1 id="google-summer-of-code">Google Summer of Code</h1>
<p>Interested in developing for OpenCensus? Here are some ideas:
<a href="https://storage.googleapis.com/summer-of-code/OpenCensusIdeasList.pdf">2018 Google Summer of Code Ideas List</a></p>
</div>
</div>
<p class="edit"><a href="https://github.com/census-instrumentation/opencensus-website">Edit this page on GitHub</a></p>
</div>
</body>
</html>