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