Skip to content

Commit 7407007

Browse files
authored
Update initial docs to OpenTelemetry (#19)
This is the highest priority as part of the migration. Future PRs will handle the complete rename.
1 parent f8bd7cf commit 7407007

File tree

6 files changed

+192
-147
lines changed

6 files changed

+192
-147
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: go
22

3-
go_import_path: github.com/census-instrumentation/opencensus-service
3+
go_import_path: github.com/open-telemetry/opentelemetry-service
44

55
go:
66
- 1.12.x

CONTRIBUTING.md

+46-21
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,52 @@
1-
# How to contribute
1+
# Contributing Guide
22

3-
We'd love to accept your patches and contributions to this project. There are
4-
just a few small guidelines you need to follow.
3+
We'd love your help!
54

6-
## Contributor License Agreement
5+
## Report a bug or requesting feature
76

8-
Contributions to this project must be accompanied by a Contributor License
9-
Agreement. You (or your employer) retain the copyright to your contribution,
10-
this simply gives us permission to use and redistribute your contributions as
11-
part of the project. Head over to <https://cla.developers.google.com/> to see
12-
your current agreements on file or to sign a new one.
7+
Reporting bugs is an important contribution. Please make sure to include:
138

14-
You generally only need to submit a CLA once, so if you've already submitted one
15-
(even if it was for a different project), you probably don't need to do it
16-
again.
9+
* Expected and actual behavior
10+
* OpenTelemetry version you are running
11+
* If possible, steps to reproduce
1712

18-
## Code reviews
13+
## How to contribute
1914

20-
All submissions, including submissions by project members, require review. We
21-
use GitHub pull requests for this purpose. Consult [GitHub Help] for more
22-
information on using pull requests.
15+
### Before you start
2316

24-
[GitHub Help]: https://help.github.com/articles/about-pull-requests/
17+
Please read project contribution
18+
[guide](https://github.com/open-telemetry/community/blob/master/CONTRIBUTING.md)
19+
for general practices for OpenTelemetry project.
20+
21+
### Fork
22+
23+
In the interest of keeping this repository clean and manageable, you should
24+
work from a fork. To create a fork, click the 'Fork' button at the top of the
25+
repository, then clone the fork locally using `git clone
26+
[email protected]:USERNAME/opentelemetry-service.git`.
27+
28+
You should also add this repository as an "upstream" repo to your local copy,
29+
in order to keep it up to date. You can add this as a remote like so:
30+
31+
`git remote add upstream https://github.com/open-telemetry/opentelemetry-service.git
32+
33+
# verify that the upstream exists
34+
git remote -v`
35+
36+
To update your fork, fetch the upstream repo's branches and commits, then merge your master with upstream's master:
37+
38+
```
39+
git fetch upstream
40+
git checkout master
41+
git merge upstream/master
42+
```
43+
44+
Remember to always work in a branch of your local copy, as you might otherwise
45+
have to contend with conflicts in master.
46+
47+
Please also see [GitHub
48+
workflow](https://github.com/open-telemetry/community/blob/master/CONTRIBUTING.md#github-workflow)
49+
section of general project contributing guide.
2550

2651
## Required Tools
2752

@@ -38,14 +63,14 @@ Working with the project sources requires the following tools:
3863
Fork the repo, checkout the upstream repo to your GOPATH by:
3964

4065
```
41-
$ GO111MODULE="" go get -d github.com/census-instrumentation/opencensus-service
66+
$ GO111MODULE="" go get -d github.com/open-telemetry/opentelemetry-service
4267
```
4368

4469
Add your fork as an origin:
4570

4671
```shell
47-
$ cd $(go env GOPATH)/src/github.com/census-instrumentation/opencensus-service
48-
$ git remote add fork [email protected]:YOUR_GITHUB_USERNAME/opencensus-service.git
72+
$ cd $(go env GOPATH)/src/github.com/open-telemetry/opentelemetry-service
73+
$ git remote add fork [email protected]:YOUR_GITHUB_USERNAME/opentelemetry-service.git
4974
```
5075

5176
Run tests, fmt and lint:
@@ -78,4 +103,4 @@ Travis CI uses the Makefile with the default target, it is recommended to
78103
run it before submitting your PR. It runs `gofmt -s` (simplify) and `golint`.
79104

80105
The dependencies are managed with `go mod` if you work with the sources under your
81-
`$GOPATH` you need to set the environment variable `GO111MODULE=on`.
106+
`$GOPATH` you need to set the environment variable `GO111MODULE=on`.

DESIGN.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
# OpenCensus Service Design Specs
1+
# OpenTelemetry Service Design Specs
22

3-
This document describes the architecture design and implementation of OpenCensus Agent and
4-
OpenCensus Collector.
3+
This document describes the architecture design and implementation of OpenTelemetry Agent and
4+
OpenTelemetry Collector.
55

66
# Table of contents
77
- [Goals](#goals)
8-
- [OpenCensus Agent](#opencensus-agent)
8+
- [OpenTelemetry Agent](#opentelemetry-agent)
99
- [Architecture overview](#agent-architecture-overview)
1010
- [Communication](#agent-communication)
1111
- [Protocol Workflow](#agent-protocol-workflow)
1212
- [Implementation details of Agent server](#agent-implementation-details-of-agent-server)
1313
- [Receivers](#agent-impl-receivers)
1414
- [Agent Core](#agent-impl-agent-core)
1515
- [Exporters](#agent-impl-exporters)
16-
- [OpenCensus Collector](#opencensus-collector)
16+
- [OpenTelemetry Collector](#opentelemetry-collector)
1717
- [Architecture overview](#collector-architecture-overview)
1818

1919
## <a name="goals"></a>Goals
@@ -23,32 +23,32 @@ optionally run a daemon on the host and it will read the
2323
collected data and upload to the configured backend.
2424
* Binaries can be instrumented without thinking about the exporting story.
2525
Allows open source binary projects (e.g. web servers like Caddy or Istio Mixer)
26-
to adopt OpenCensus without having to link any exporters into their binary.
26+
to adopt OpenTelemetry without having to link any exporters into their binary.
2727
* Easier to scale the exporter development. Not every language has to
2828
implement support for each backend.
2929
* Custom daemons containing only the required exporters compiled in can be created.
3030

31-
## <a name="opencensus-agent"></a>OpenCensus Agent
31+
## <a name="opentelemetry-agent"></a>OpenTelemetry Agent
3232

3333
### <a name="agent-architecture-overview"></a>Architecture Overview
3434

3535
On a typical VM/container, there are user applications running in some processes/pods with
36-
OpenCensus Library (Library). Previously, Library did all the recording, collecting, sampling and
36+
OpenTelemetry Library (Library). Previously, Library did all the recording, collecting, sampling and
3737
aggregation on spans/stats/metrics, and exported them to other persistent storage backends via the
3838
Library exporters, or displayed them on local zpages. This pattern has several drawbacks, for
3939
example:
4040

41-
1. For each OpenCensus Library, exporters/zpages need to be re-implemented in native languages.
41+
1. For each OpenTelemetry Library, exporters/zpages need to be re-implemented in native languages.
4242
2. In some programming languages (e.g Ruby, PHP), it is difficult to do the stats aggregation in
4343
process.
44-
3. To enable exporting OpenCensus spans/stats/metrics, application users need to manually add
44+
3. To enable exporting OpenTelemetry spans/stats/metrics, application users need to manually add
4545
library exporters and redeploy their binaries. This is especially difficult when there’s already
46-
an incident and users want to use OpenCensus to investigate what’s going on right away.
46+
an incident and users want to use OpenTelemetry to investigate what’s going on right away.
4747
4. Application users need to take the responsibility in configuring and initializing exporters.
4848
This is error-prone (e.g they may not set up the correct credentials\monitored resources), and
49-
users may be reluctant to “pollute” their code with OpenCensus.
49+
users may be reluctant to “pollute” their code with OpenTelemetry.
5050

51-
To resolve the issues above, we are introducing OpenCensus Agent (Agent). Agent runs as a daemon
51+
To resolve the issues above, we are introducing OpenTelemetry Agent (Agent). Agent runs as a daemon
5252
in the VM/container and can be deployed independent of Library. Once Agent is deployed and
5353
running, it should be able to retrieve spans/stats/metrics from Library, export them to other
5454
backends. We MAY also give Agent the ability to push configurations (e.g sampling probability) to
@@ -84,7 +84,7 @@ assoicated, Agent should handle the data properly, as if they were sent in a sub
8484
Identifier is no longer needed once the streams are established.
8585
3. On Library side, if connection to Agent failed, Library should retry indefintely if possible,
8686
subject to available/configured memory buffer size. (Reason: consider environments where the
87-
running applications are already instrumented with OpenCensus Library but Agent is not deployed
87+
running applications are already instrumented with OpenTelemetry Library but Agent is not deployed
8888
yet. Sometime in the future, we can simply roll out the Agent to those environments and Library
8989
would automatically connect to Agent with indefinite retries. Zero changes are required to the
9090
applications.) Depending on the language and implementation, retry can be done in either
@@ -105,7 +105,7 @@ invocations.
105105

106106
The Agent consists of three main parts:
107107

108-
1. The receivers of different instrumentation libraries, such as OpenCensus, Zipkin,
108+
1. The receivers of different instrumentation libraries, such as OpenTelemetry, Zipkin,
109109
Istio Mixer, Prometheus client, etc. Receivers act as the “frontend” or “gateway” of
110110
Agent. In addition, there MAY be one special receiver for receiving configuration updates
111111
from outside.
@@ -149,18 +149,18 @@ Once in a while, Agent Core will push `SpanProto` with `Node` to each exporter.
149149
receiving them, each exporter will translate `SpanProto` to the format supported by the
150150
backend (e.g Jaeger Thrift Span), and then push them to corresponding backend or service.
151151

152-
## <a name="opencensus-collector"></a>OpenCensus Collector
152+
## <a name="opentelemetry-collector"></a>OpenTelemetry Collector
153153

154154
### <a name="collector-architecture-overview"></a>Architecture Overview
155155

156-
The OpenCensus Collector runs as a standalone instance and receives spans and
157-
metrics exporterd by one or more OpenCensus Agents or Libraries, or by
156+
The OpenTelemetry Collector runs as a standalone instance and receives spans and
157+
metrics exporterd by one or more OpenTelemetry Agents or Libraries, or by
158158
tasks/agents that emit in one of the supported protocols. The Collector is
159159
configured to send data to the configured exporter(s). The following figure
160160
summarizes the deployment architecture:
161161

162-
![OpenCensus Collector Architecture](https://user-images.githubusercontent.com/10536136/46637070-65f05f80-cb0f-11e8-96e6-bc56468486b3.png "OpenCensus Collector Architecture")
162+
![OpenTelemetry Collector Architecture](https://user-images.githubusercontent.com/10536136/46637070-65f05f80-cb0f-11e8-96e6-bc56468486b3.png "OpenTelemetry Collector Architecture")
163163

164-
The OpenCensus Collector can also be deployed in other configurations, such as
164+
The OpenTelemetry Collector can also be deployed in other configurations, such as
165165
receiving data from other agents or clients in one of the formats supported by
166166
its receivers.

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ GOVET=go vet
1616
GOOS=$(shell go env GOOS)
1717

1818
GIT_SHA=$(shell git rev-parse --short HEAD)
19-
BUILD_INFO_IMPORT_PATH=github.com/census-instrumentation/opencensus-service/internal/version
19+
BUILD_INFO_IMPORT_PATH=github.com/open-telemetry/opentelemetry-service/internal/version
2020
BUILD_X1=-X $(BUILD_INFO_IMPORT_PATH).GitHash=$(GIT_SHA)
2121
ifdef VERSION
2222
BUILD_X2=-X $(BUILD_INFO_IMPORT_PATH).Version=$(VERSION)
@@ -44,7 +44,7 @@ travis-ci: fmt vet lint test-with-cover
4444
.PHONY: test-with-cover
4545
test-with-cover:
4646
@echo Verifying that all packages have test files to count in coverage
47-
@scripts/check-test-files.sh $(subst github.com/census-instrumentation/opencensus-service/,./,$(ALL_PKGS))
47+
@scripts/check-test-files.sh $(subst github.com/open-telemetry/opentelemetry-service/,./,$(ALL_PKGS))
4848
@echo pre-compiling tests
4949
@time go test -i $(ALL_PKGS)
5050
$(GOTEST) $(GOTEST_OPT_WITH_COVERAGE) $(ALL_PKGS)

PERFORMANCE.MD

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# OpenCensus Service Performance
1+
# OpenTelemetry Service Performance
22

33
The performance numbers that follow were generated using version 0.1.3 of the
4-
OpenCensus Service, are applicable primarily to the OpenCensus Collector and
4+
OpenTelemetry Service, are applicable primarily to the OpenTelemetry Collector and
55
are measured only for traces. In the future, more configurations will be tested.
66

7-
Note with the OpenCensus Agent you can expect as good if not better performance
8-
with lower resource utilization. This is because the OpenCensus Agent does not
7+
Note with the OpenTelemetry Agent you can expect as good if not better performance
8+
with lower resource utilization. This is because the OpenTelemetry Agent does not
99
today support features such as batching or retries and will not support
1010
tail-sampling.
1111

12-
It is important to note that the performance of the OpenCensus Collector depends
12+
It is important to note that the performance of the OpenTelemetry Collector depends
1313
on a variety of factors including:
1414

15-
* The receiving format: OpenCensus (55678), Jaeger thrift (14268) or Zipkin v2 JSON (9411)
15+
* The receiving format: OpenTelemetry (55678), Jaeger thrift (14268) or Zipkin v2 JSON (9411)
1616
* The size of the spans (tests are based on number of attributes): 20
1717
* Whether tail-sampling is enabled or not
1818
* CPU / Memory allocation
@@ -35,8 +35,8 @@ impact the results of the tests. The parameters used are defined below.
3535

3636
| Span<br>Format | CPU<br>(2+ GHz) | RAM<br>(GB) | Sustained<br>Rate | Recommended<br>Maximum |
3737
| :---: | :---: | :---: | :---: | :---: |
38-
| OpenCensus | 1 | 2 | ~12K | 10K |
39-
| OpenCensus | 2 | 4 | ~24K | 20K |
38+
| OpenTelemetry | 1 | 2 | ~12K | 10K |
39+
| OpenTelemetry | 2 | 4 | ~24K | 20K |
4040
| Jaeger Thrift | 1 | 2 | ~14K | 12K |
4141
| Jaeger Thrift | 2 | 4 | ~27.5K | 24K |
4242
| Zipkin v2 JSON | 1 | 2 | ~10.5K | 9K |
@@ -56,8 +56,8 @@ service
5656
5757
| Span<br>Format | CPU<br>(2+ GHz) | RAM<br>(GB) | Sustained<br>Rate | Recommended<br>Maximum |
5858
| :---: | :---: | :---: | :---: | :---: |
59-
| OpenCensus | 1 | 2 | ~9K | 8K |
60-
| OpenCensus | 2 | 4 | ~18K | 16K |
59+
| OpenTelemetry | 1 | 2 | ~9K | 8K |
60+
| OpenTelemetry | 2 | 4 | ~18K | 16K |
6161
| Jaeger Thrift | 1 | 6 | ~11.5K | 10K |
6262
| Jaeger Thrift | 2 | 8 | ~23K | 20K |
6363
| Zipkin v2 JSON | 1 | 6 | ~8.5K | 7K |

0 commit comments

Comments
 (0)