# OpenCensus Examples ## To build the examples use ### Gradle ```bash ./gradlew installDist ``` ### Maven ```bash mvn package appassembler:assemble ``` To build Spring Servlet example ```bash cd spring/servlet mvn package appassembler:assemble ``` ## To run "TagContextExample" use ### Gradle ```bash ./build/install/opencensus-examples/bin/TagContextExample ``` ### Maven ```bash ./target/appassembler/bin/TagContextExample ``` ## To run "ZPagesTester" ### Gradle ```bash ./build/install/opencensus-examples/bin/ZPagesTester ``` ### Maven ```bash ./target/appassembler/bin/ZPagesTester ``` Available pages: * For tracing page go to [localhost:8080/tracez][ZPagesTraceZLink]. * For tracing config page go to [localhost:8080/traceconfigz][ZPagesTraceConfigZLink]. * For RPC stats page go to [localhost:8080/rpcz][ZPagesRpcZLink]. * For stats and measures on all registered views go to [localhost:8080/statsz][ZPagesStatsZLink]. [ZPagesTraceZLink]: http://localhost:8080/tracez [ZPagesTraceConfigZLink]: http://localhost:8080/traceconfigz [ZPagesRpcZLink]: http://localhost:8080/rpcz [ZPagesStatsZLink]: http://localhost:8080/statsz ## To run "QuickStart" example use ### Gradle ```bash ./build/install/opencensus-examples/bin/QuickStart ``` ### Maven ```bash ./target/appassembler/bin/QuickStart ``` ## To run "gRPC Hello World" example use Please note all the arguments are optional. If you do not specify these arguments, default values will be used: * host and serverPort will be "localhost:50051" * user will be "world" * cloudProjectId will be null (which means no stats/spans will be exported to Stackdriver) * server zPagePort will be 3000 * client zPagePort will be 3001 * Prometheus port will be 9090 However, if you want to specify any of these arguements, please make sure they are in order. ### Gradle ```bash ./build/install/opencensus-examples/bin/HelloWorldServer serverPort cloudProjectId zPagePort prometheusPort ./build/install/opencensus-examples/bin/HelloWorldClient user host serverPort cloudProjectId zPagePort ``` ### Maven ```bash ./target/appassembler/bin/HelloWorldServer serverPort cloudProjectId zPagePort prometheusPort ./target/appassembler/bin/HelloWorldClient user host serverPort cloudProjectId zPagePort ``` ## To run "Repl" example See the full tutorial on [OpenCensus website](https://opencensus.io/quickstart/java/metrics/). First run: ### Gradle ```bash ./build/install/opencensus-examples/bin/Repl ``` ### Maven ```bash ./target/appassembler/bin/Repl ``` Then start the Prometheus process: ```bash cd src/main/java/io/opencensus/examples/quickstart/ prometheus --config.file=prometheus.yaml ``` Stats will be shown on Prometheus UI on http://localhost:9090. ## To run "StackdriverQuickstart" use See the full tutorial on [OpenCensus website](https://opencensus.io/guides/exporters/supported-exporters/java/stackdriver/). ### Gradle ```bash ./build/install/opencensus-examples/bin/StackdriverQuickstart ``` ### Maven ``` ./target/appassembler/bin/StackdriverQuickstart ``` ## To run HTTP Server and Client `HttpJettyServer` is a web service using Jetty Server on top of http-servlet. `HttpJettyClient` is a web client using Jetty Client that sends request to `HttpettyServer`. Both `HttpJettyServer` and `HttpJettyClient` are instrumented with OpenCensus. Traces from both client and server can be viewed in their respective logs on console. Stats are available from Prometheus server running at - http://localhost:9091/metrics - for client stats - http://localhost:9090/metrics - for server stats ### Gradle ```bash ./build/install/opencensus-examples/bin/HttpJettyServer ./build/install/opencensus-examples/bin/HttpJettyClient ``` ### Maven ```bash ./target/appassembler/bin/HttpJettyServer ./target/appassembler/bin/HttpJettyClient ``` ## To run OcAgentExportersQuickStart ### Gradle ```bash ./build/install/opencensus-examples/bin/OcAgentExportersQuickStart agentEndpoint # default is localhost:56678 ``` ### Maven ```bash ./target/appassembler/bin/OcAgentExportersQuickStart agentEndpoint # default is localhost:56678 ``` You also need to install and start OpenCensus-Agent in order to receive the traces and metrics. For more information on setting up Agent, see [tutorial](https://opencensus.io/agent/). ## To run Spring HTTP Server and Client `SpringServletApplication` is a web service application using Spring framework. The application is instrumented with opencensus simply by incuding opencensus-contrib-spring-starter package. The instrumentation enables tracing on incoming and outgoing http requests. On receiving GET request, the server originates multiple GET requests to itself using AsyncRestTemplate on different endpoint. Send a http GET request using curl to see the traces on console. ``` curl http://localhost:8080 ``` Stats are available from Prometheus server running at - http://localhost:9090/metrics - for server and client stats ### Gradle ```bash cd spring/servlet ./gradlew bootRun ``` ### Maven ```bash cd spring/servlet ./target/appassembler/bin/SpringServletApplication ```