Skip to content

Commit

Permalink
[WIP] Update ReadMe with Nginx details
Browse files Browse the repository at this point in the history
  • Loading branch information
DebajitDas authored May 25, 2022
1 parent b6a1c78 commit bb243d9
Showing 1 changed file with 78 additions and 2 deletions.
80 changes: 78 additions & 2 deletions instrumentation/otel-webserver-module/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,84 @@ After going inside the container run the following commands ```cd \otel-webserve

The build file can be copied at a suitable location in User's system by running the command ```docker cp <container_name>:/otel-webserver-module/build/opentelemetry-webserver-sdk-x64-linux.tgz <desired_location>```. The installation steps can be inferred from ```install.sh``` script.

### Maintainers
## Nginx Webserver Module

Similar to Apache, Nginx Webserver Module also enables tracing of incoming requests to the server by injecting instrumentation into the Nginx server at runtime. It also captures the response time of the individual modules involved in the request processing.

### Module Wise Monitoring

Currently, Nginx Webserver module monitores some fixed set of modules, which gets involved in the request processing. Following are the set of modules monitored:
* ngx_http_realip_module
* ngx_http_rewrite_module
* ngx_http_limit_conn_module
* ngx_http_limit_req_module
* ngx_http_auth_request_module
* ngx_http_auth_basic_module
* ngx_http_access_module
* ngx_http_static_module
* ngx_http_gzip_static_module
* ngx_http_dav_module
* ngx_http_autoindex_module
* ngx_http_index_module
* ngx_http_random_index_module
* ngx_http_log_module

### Third Party Dependencies

| Library | Present Version |
| ---------------------------------------------- | ----------- |
| Apache-log4cxx | 0.11.0 |
| Apr | 1.7.0 |
| Apr-util | 1.6.1 |
| Expat | 2.3.0 |
| Boost | 1.75.0 |
| Opentelemetry - C++ SDK | 1.2.0 |
| Googletest | 1.10.0 |
| Pcre | 8.44 |

*There are some libraries which are just used to generate Apache Header files

| Library | Present Version |
| ---------------------------------------------- | ----------- |
| Nginx | 1.18.0 |
| Apr | 1.7.0 |
| Apr-util | 1.6.1 |

### Configuration
| Configuration Directives | Default Values | Remarks |
| ---------------------------------------------- | --------------- | ------------------------------------------ |
|*NginxModuleEnabled* | ON | OPTIONAL: Needed for instrumenting Nginx Webserver |
|*NginxModuleOtelSpanExporter* | otlp | OPTIONAL: Specify the span exporter to be used. Supported values are "otlp" and "ostream". All other supported values would be added in future. |
|*NginxModuleOtelExporterEndpoint:* | | REQUIRED: The endpoint otel exporter exports to. Example "docker.for.mac.localhost:4317" |
|*NginxModuleOtelSpanProcessor* | batch | OPTIONAL: Specify the processor to select to. Supported values are "simple" and "batch".|
|*NginxModuleOtelSampler* | AlwaysOn | OPTIONAL: Supported values are "AlwaysOn" and "AlwaysOff" |
|*NginxModuleOtelMaxQueueSize* | 2048 | OPTIONAL: The maximum queue size. After the size is reached spans are dropped|
|*NginxModuleOtelScheduledDelayMillis* | 5000 | OPTIONAL: The delay interval in milliseconds between two consecutive exports|
|*NginxModuleOtelExportTimeoutMillis* | 30000 | OPTIONAL: How long the export can run in milliseconds before it is cancelled|
|*NginxModuleOtelMaxExportBatchSize* | 512 | OPTIONAL: The maximum batch size of every export. It must be smaller or equal to maxQueueSize |
|*NginxModuleServiceName* | | REQUIRED: A namespace for the ServiceName|
|*NginxModuleServiceNamespace* | | REQUIRED: Logical name of the service |
|*NginxModuleServiceInstanceId* | | REQUIRED: The string ID of the service instance |
|*NginxModuleTraceAsError* | | OPTIONAL: Trace level for logging to Apache log|
|*NginxModuleWebserverContext* | | OPTIONAL: Takes 3 values(space-seperated) ServiceName, ServiceNamespace and ServiceInstanceId|
|*NginxModuleSegmentType* | | OPTIONAL: Specify the string (FIRST/LAST/CUSTOM) to be filtered for Span Name Creation|
|*NginxModuleSegmentParameter* | | OPTIONAL: Specify the segment count or segment numbers that you want to display for Span Creation|


### Build and Installation
#### Prerequisites
- Docker Desktop should be installed on the system

#### Platform Supported
- The build is supported for **x86-64** platforms.
- Currently, it is built and tested on **Centos6** by default

#### Automatic build and Installation

We will use Docker to run the Module.


## Maintainers
* [Kumar Pratyush](https://github.com/kpratyus), Cisco
* [Lakshay Gaba](https://github.com/lakshay141), Cisco
* [Debajit Das](https://github.com/DebajitDas), Cisco

0 comments on commit bb243d9

Please sign in to comment.