xref: /aosp_15_r20/external/opencensus-java/examples/README.md (revision a24ffb47c3166327784aa05b149974e82e8f71b8)
1*a24ffb47SSadaf Ebrahimi# OpenCensus Examples
2*a24ffb47SSadaf Ebrahimi
3*a24ffb47SSadaf Ebrahimi## To build the examples use
4*a24ffb47SSadaf Ebrahimi
5*a24ffb47SSadaf Ebrahimi### Gradle
6*a24ffb47SSadaf Ebrahimi```bash
7*a24ffb47SSadaf Ebrahimi./gradlew installDist
8*a24ffb47SSadaf Ebrahimi```
9*a24ffb47SSadaf Ebrahimi
10*a24ffb47SSadaf Ebrahimi### Maven
11*a24ffb47SSadaf Ebrahimi```bash
12*a24ffb47SSadaf Ebrahimimvn package appassembler:assemble
13*a24ffb47SSadaf Ebrahimi```
14*a24ffb47SSadaf Ebrahimi
15*a24ffb47SSadaf EbrahimiTo build Spring Servlet example
16*a24ffb47SSadaf Ebrahimi```bash
17*a24ffb47SSadaf Ebrahimicd spring/servlet
18*a24ffb47SSadaf Ebrahimimvn package appassembler:assemble
19*a24ffb47SSadaf Ebrahimi```
20*a24ffb47SSadaf Ebrahimi
21*a24ffb47SSadaf Ebrahimi
22*a24ffb47SSadaf Ebrahimi## To run "TagContextExample" use
23*a24ffb47SSadaf Ebrahimi
24*a24ffb47SSadaf Ebrahimi### Gradle
25*a24ffb47SSadaf Ebrahimi```bash
26*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/TagContextExample
27*a24ffb47SSadaf Ebrahimi```
28*a24ffb47SSadaf Ebrahimi
29*a24ffb47SSadaf Ebrahimi### Maven
30*a24ffb47SSadaf Ebrahimi```bash
31*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/TagContextExample
32*a24ffb47SSadaf Ebrahimi```
33*a24ffb47SSadaf Ebrahimi
34*a24ffb47SSadaf Ebrahimi## To run "ZPagesTester"
35*a24ffb47SSadaf Ebrahimi
36*a24ffb47SSadaf Ebrahimi### Gradle
37*a24ffb47SSadaf Ebrahimi```bash
38*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/ZPagesTester
39*a24ffb47SSadaf Ebrahimi```
40*a24ffb47SSadaf Ebrahimi
41*a24ffb47SSadaf Ebrahimi### Maven
42*a24ffb47SSadaf Ebrahimi```bash
43*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/ZPagesTester
44*a24ffb47SSadaf Ebrahimi```
45*a24ffb47SSadaf Ebrahimi
46*a24ffb47SSadaf EbrahimiAvailable pages:
47*a24ffb47SSadaf Ebrahimi* For tracing page go to [localhost:8080/tracez][ZPagesTraceZLink].
48*a24ffb47SSadaf Ebrahimi* For tracing config page go to [localhost:8080/traceconfigz][ZPagesTraceConfigZLink].
49*a24ffb47SSadaf Ebrahimi* For RPC stats page go to [localhost:8080/rpcz][ZPagesRpcZLink].
50*a24ffb47SSadaf Ebrahimi* For stats and measures on all registered views go to [localhost:8080/statsz][ZPagesStatsZLink].
51*a24ffb47SSadaf Ebrahimi
52*a24ffb47SSadaf Ebrahimi[ZPagesTraceZLink]: http://localhost:8080/tracez
53*a24ffb47SSadaf Ebrahimi[ZPagesTraceConfigZLink]: http://localhost:8080/traceconfigz
54*a24ffb47SSadaf Ebrahimi[ZPagesRpcZLink]: http://localhost:8080/rpcz
55*a24ffb47SSadaf Ebrahimi[ZPagesStatsZLink]: http://localhost:8080/statsz
56*a24ffb47SSadaf Ebrahimi
57*a24ffb47SSadaf Ebrahimi## To run "QuickStart" example use
58*a24ffb47SSadaf Ebrahimi
59*a24ffb47SSadaf Ebrahimi### Gradle
60*a24ffb47SSadaf Ebrahimi```bash
61*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/QuickStart
62*a24ffb47SSadaf Ebrahimi```
63*a24ffb47SSadaf Ebrahimi
64*a24ffb47SSadaf Ebrahimi### Maven
65*a24ffb47SSadaf Ebrahimi```bash
66*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/QuickStart
67*a24ffb47SSadaf Ebrahimi```
68*a24ffb47SSadaf Ebrahimi
69*a24ffb47SSadaf Ebrahimi## To run "gRPC Hello World" example use
70*a24ffb47SSadaf Ebrahimi
71*a24ffb47SSadaf EbrahimiPlease note all the arguments are optional. If you do not specify these arguments, default values
72*a24ffb47SSadaf Ebrahimiwill be used:
73*a24ffb47SSadaf Ebrahimi
74*a24ffb47SSadaf Ebrahimi* host and serverPort will be "localhost:50051"
75*a24ffb47SSadaf Ebrahimi* user will be "world"
76*a24ffb47SSadaf Ebrahimi* cloudProjectId will be null (which means no stats/spans will be exported to Stackdriver)
77*a24ffb47SSadaf Ebrahimi* server zPagePort will be 3000
78*a24ffb47SSadaf Ebrahimi* client zPagePort will be 3001
79*a24ffb47SSadaf Ebrahimi* Prometheus port will be 9090
80*a24ffb47SSadaf Ebrahimi
81*a24ffb47SSadaf Ebrahimi
82*a24ffb47SSadaf EbrahimiHowever, if you want to specify any of these arguements, please make sure they are in order.
83*a24ffb47SSadaf Ebrahimi
84*a24ffb47SSadaf Ebrahimi### Gradle
85*a24ffb47SSadaf Ebrahimi```bash
86*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/HelloWorldServer serverPort cloudProjectId zPagePort prometheusPort
87*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/HelloWorldClient user host serverPort cloudProjectId zPagePort
88*a24ffb47SSadaf Ebrahimi```
89*a24ffb47SSadaf Ebrahimi
90*a24ffb47SSadaf Ebrahimi### Maven
91*a24ffb47SSadaf Ebrahimi```bash
92*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/HelloWorldServer serverPort cloudProjectId zPagePort prometheusPort
93*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/HelloWorldClient user host serverPort cloudProjectId zPagePort
94*a24ffb47SSadaf Ebrahimi```
95*a24ffb47SSadaf Ebrahimi
96*a24ffb47SSadaf Ebrahimi## To run "Repl" example
97*a24ffb47SSadaf Ebrahimi
98*a24ffb47SSadaf EbrahimiSee the full tutorial on [OpenCensus website](https://opencensus.io/quickstart/java/metrics/).
99*a24ffb47SSadaf Ebrahimi
100*a24ffb47SSadaf EbrahimiFirst run:
101*a24ffb47SSadaf Ebrahimi
102*a24ffb47SSadaf Ebrahimi### Gradle
103*a24ffb47SSadaf Ebrahimi```bash
104*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/Repl
105*a24ffb47SSadaf Ebrahimi```
106*a24ffb47SSadaf Ebrahimi
107*a24ffb47SSadaf Ebrahimi### Maven
108*a24ffb47SSadaf Ebrahimi```bash
109*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/Repl
110*a24ffb47SSadaf Ebrahimi```
111*a24ffb47SSadaf Ebrahimi
112*a24ffb47SSadaf EbrahimiThen start the Prometheus process:
113*a24ffb47SSadaf Ebrahimi```bash
114*a24ffb47SSadaf Ebrahimicd src/main/java/io/opencensus/examples/quickstart/
115*a24ffb47SSadaf Ebrahimiprometheus --config.file=prometheus.yaml
116*a24ffb47SSadaf Ebrahimi```
117*a24ffb47SSadaf Ebrahimi
118*a24ffb47SSadaf EbrahimiStats will be shown on Prometheus UI on http://localhost:9090.
119*a24ffb47SSadaf Ebrahimi
120*a24ffb47SSadaf Ebrahimi## To run "StackdriverQuickstart" use
121*a24ffb47SSadaf Ebrahimi
122*a24ffb47SSadaf EbrahimiSee the full tutorial on [OpenCensus website](https://opencensus.io/guides/exporters/supported-exporters/java/stackdriver/).
123*a24ffb47SSadaf Ebrahimi
124*a24ffb47SSadaf Ebrahimi### Gradle
125*a24ffb47SSadaf Ebrahimi```bash
126*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/StackdriverQuickstart
127*a24ffb47SSadaf Ebrahimi```
128*a24ffb47SSadaf Ebrahimi
129*a24ffb47SSadaf Ebrahimi### Maven
130*a24ffb47SSadaf Ebrahimi```
131*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/StackdriverQuickstart
132*a24ffb47SSadaf Ebrahimi```
133*a24ffb47SSadaf Ebrahimi
134*a24ffb47SSadaf Ebrahimi## To run HTTP Server and Client
135*a24ffb47SSadaf Ebrahimi
136*a24ffb47SSadaf Ebrahimi`HttpJettyServer` is a web service using Jetty Server on top of http-servlet.
137*a24ffb47SSadaf Ebrahimi`HttpJettyClient` is a web client using Jetty Client that sends request to `HttpettyServer`.
138*a24ffb47SSadaf EbrahimiBoth `HttpJettyServer` and `HttpJettyClient` are instrumented with OpenCensus.
139*a24ffb47SSadaf Ebrahimi
140*a24ffb47SSadaf EbrahimiTraces from both client and server can be viewed in their respective logs on console.
141*a24ffb47SSadaf EbrahimiStats are available from Prometheus server running at
142*a24ffb47SSadaf Ebrahimi- http://localhost:9091/metrics - for client stats
143*a24ffb47SSadaf Ebrahimi- http://localhost:9090/metrics - for server stats
144*a24ffb47SSadaf Ebrahimi
145*a24ffb47SSadaf Ebrahimi
146*a24ffb47SSadaf Ebrahimi### Gradle
147*a24ffb47SSadaf Ebrahimi```bash
148*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/HttpJettyServer
149*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/HttpJettyClient
150*a24ffb47SSadaf Ebrahimi```
151*a24ffb47SSadaf Ebrahimi
152*a24ffb47SSadaf Ebrahimi### Maven
153*a24ffb47SSadaf Ebrahimi```bash
154*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/HttpJettyServer
155*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/HttpJettyClient
156*a24ffb47SSadaf Ebrahimi```
157*a24ffb47SSadaf Ebrahimi
158*a24ffb47SSadaf Ebrahimi## To run OcAgentExportersQuickStart
159*a24ffb47SSadaf Ebrahimi
160*a24ffb47SSadaf Ebrahimi### Gradle
161*a24ffb47SSadaf Ebrahimi```bash
162*a24ffb47SSadaf Ebrahimi./build/install/opencensus-examples/bin/OcAgentExportersQuickStart agentEndpoint # default is localhost:56678
163*a24ffb47SSadaf Ebrahimi```
164*a24ffb47SSadaf Ebrahimi
165*a24ffb47SSadaf Ebrahimi### Maven
166*a24ffb47SSadaf Ebrahimi```bash
167*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/OcAgentExportersQuickStart agentEndpoint # default is localhost:56678
168*a24ffb47SSadaf Ebrahimi```
169*a24ffb47SSadaf Ebrahimi
170*a24ffb47SSadaf EbrahimiYou also need to install and start OpenCensus-Agent in order to receive the traces and metrics.
171*a24ffb47SSadaf EbrahimiFor more information on setting up Agent, see [tutorial](https://opencensus.io/agent/).
172*a24ffb47SSadaf Ebrahimi
173*a24ffb47SSadaf Ebrahimi## To run Spring HTTP Server and Client
174*a24ffb47SSadaf Ebrahimi
175*a24ffb47SSadaf Ebrahimi`SpringServletApplication` is a web service application using Spring framework. The application
176*a24ffb47SSadaf Ebrahimiis instrumented with opencensus simply by incuding opencensus-contrib-spring-starter package.
177*a24ffb47SSadaf EbrahimiThe instrumentation enables tracing on incoming and outgoing http requests. On receiving GET
178*a24ffb47SSadaf Ebrahimirequest, the server originates multiple GET requests to itself using AsyncRestTemplate on different
179*a24ffb47SSadaf Ebrahimiendpoint.
180*a24ffb47SSadaf Ebrahimi
181*a24ffb47SSadaf EbrahimiSend a http GET request using curl to see the traces on console.
182*a24ffb47SSadaf Ebrahimi```
183*a24ffb47SSadaf Ebrahimicurl http://localhost:8080
184*a24ffb47SSadaf Ebrahimi```
185*a24ffb47SSadaf Ebrahimi
186*a24ffb47SSadaf EbrahimiStats are available from Prometheus server running at
187*a24ffb47SSadaf Ebrahimi- http://localhost:9090/metrics - for server and client stats
188*a24ffb47SSadaf Ebrahimi
189*a24ffb47SSadaf Ebrahimi### Gradle
190*a24ffb47SSadaf Ebrahimi```bash
191*a24ffb47SSadaf Ebrahimicd spring/servlet
192*a24ffb47SSadaf Ebrahimi./gradlew bootRun
193*a24ffb47SSadaf Ebrahimi```
194*a24ffb47SSadaf Ebrahimi
195*a24ffb47SSadaf Ebrahimi### Maven
196*a24ffb47SSadaf Ebrahimi```bash
197*a24ffb47SSadaf Ebrahimicd spring/servlet
198*a24ffb47SSadaf Ebrahimi./target/appassembler/bin/SpringServletApplication
199*a24ffb47SSadaf Ebrahimi```
200*a24ffb47SSadaf Ebrahimi
201