Created
November 13, 2021 07:10
-
-
Save spencerwilson/3652d37a494710451afef9ee472ae7c3 to your computer and use it in GitHub Desktop.
nginx and nginx instrumentation configs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# configuration file /etc/nginx/nginx.conf: | |
#Elastic Beanstalk Nginx Configuration File | |
load_module /home/ec2-user/otel_ngx_module.so; | |
user nginx; | |
error_log /var/log/nginx/error.log warn; | |
pid /var/run/nginx.pid; | |
worker_processes auto; | |
worker_rlimit_nofile 200000; | |
events { | |
worker_connections 1024; | |
} | |
http { | |
include /etc/nginx/mime.types; | |
default_type application/octet-stream; | |
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | |
'$status $body_bytes_sent "$http_referer" ' | |
'"$http_user_agent" "$http_x_forwarded_for"'; | |
include conf.d/*.conf; | |
map $http_upgrade $connection_upgrade { | |
default "upgrade"; | |
} | |
server { | |
listen 80 default_server; | |
access_log /var/log/nginx/access.log main; | |
client_header_timeout 60; | |
client_body_timeout 60; | |
keepalive_timeout 60; | |
gzip off; | |
gzip_comp_level 4; | |
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; | |
# Include the Elastic Beanstalk generated locations | |
include conf.d/elasticbeanstalk/*.conf; | |
} | |
} | |
# configuration file /etc/nginx/mime.types: | |
types { | |
text/html html htm shtml; | |
text/css css; | |
text/xml xml; | |
image/gif gif; | |
image/jpeg jpeg jpg; | |
application/javascript js; | |
application/atom+xml atom; | |
application/rss+xml rss; | |
text/mathml mml; | |
text/plain txt; | |
text/vnd.sun.j2me.app-descriptor jad; | |
text/vnd.wap.wml wml; | |
text/x-component htc; | |
image/png png; | |
image/svg+xml svg svgz; | |
image/tiff tif tiff; | |
image/vnd.wap.wbmp wbmp; | |
image/webp webp; | |
image/x-icon ico; | |
image/x-jng jng; | |
image/x-ms-bmp bmp; | |
font/woff woff; | |
font/woff2 woff2; | |
application/java-archive jar war ear; | |
application/json json; | |
application/mac-binhex40 hqx; | |
application/msword doc; | |
application/pdf pdf; | |
application/postscript ps eps ai; | |
application/rtf rtf; | |
application/vnd.apple.mpegurl m3u8; | |
application/vnd.google-earth.kml+xml kml; | |
application/vnd.google-earth.kmz kmz; | |
application/vnd.ms-excel xls; | |
application/vnd.ms-fontobject eot; | |
application/vnd.ms-powerpoint ppt; | |
application/vnd.oasis.opendocument.graphics odg; | |
application/vnd.oasis.opendocument.presentation odp; | |
application/vnd.oasis.opendocument.spreadsheet ods; | |
application/vnd.oasis.opendocument.text odt; | |
application/vnd.openxmlformats-officedocument.presentationml.presentation | |
pptx; | |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | |
xlsx; | |
application/vnd.openxmlformats-officedocument.wordprocessingml.document | |
docx; | |
application/vnd.wap.wmlc wmlc; | |
application/x-7z-compressed 7z; | |
application/x-cocoa cco; | |
application/x-java-archive-diff jardiff; | |
application/x-java-jnlp-file jnlp; | |
application/x-makeself run; | |
application/x-perl pl pm; | |
application/x-pilot prc pdb; | |
application/x-rar-compressed rar; | |
application/x-redhat-package-manager rpm; | |
application/x-sea sea; | |
application/x-shockwave-flash swf; | |
application/x-stuffit sit; | |
application/x-tcl tcl tk; | |
application/x-x509-ca-cert der pem crt; | |
application/x-xpinstall xpi; | |
application/xhtml+xml xhtml; | |
application/xspf+xml xspf; | |
application/zip zip; | |
application/octet-stream bin exe dll; | |
application/octet-stream deb; | |
application/octet-stream dmg; | |
application/octet-stream iso img; | |
application/octet-stream msi msp msm; | |
audio/midi mid midi kar; | |
audio/mpeg mp3; | |
audio/ogg ogg; | |
audio/x-m4a m4a; | |
audio/x-realaudio ra; | |
video/3gpp 3gpp 3gp; | |
video/mp2t ts; | |
video/mp4 mp4; | |
video/mpeg mpeg mpg; | |
video/quicktime mov; | |
video/webm webm; | |
video/x-flv flv; | |
video/x-m4v m4v; | |
video/x-mng mng; | |
video/x-ms-asf asx asf; | |
video/x-ms-wmv wmv; | |
video/x-msvideo avi; | |
} | |
# configuration file /etc/nginx/conf.d/healthd_logformat.conf: | |
log_format healthd '$msec"$uri"' | |
'$status"$request_time"$upstream_response_time"' | |
'$http_x_forwarded_for'; | |
# configuration file /etc/nginx/conf.d/opentelemetry.conf: | |
opentelemetry_config /etc/nginx/conf.d/opentelemetry_config.toml; | |
opentelemetry_propagate; | |
# configuration file /etc/nginx/conf.d/status.conf: | |
# Set up Nginx integration | |
# https://docs.datadoghq.com/integrations/nginx/?tab=host#prepare-nginx | |
# https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html#platforms-linux-extend.proxy.nginx | |
# | |
# Unfortunately, due to the specific way this file is included in /etc/nginx/nginx.conf, we can't | |
# alter the log_format used for the server in this file. This would have been helpful to get | |
# $request_time as suggested at https://docs.datadoghq.com/integrations/nginx/?tab=host#log-collection , | |
# but alas, EB would demand we supply a total Ngninx config instead if we wanted to do that. | |
# See https://stackoverflow.com/questions/50472459/aws-eb-nginx-update-access-log-format-or-create-new-log/51934962#51934962 | |
server { | |
listen 81; | |
server_name localhost; | |
access_log off; | |
allow 127.0.0.1; | |
deny all; | |
location /nginx_status { | |
# freely available with open source NGINX | |
stub_status; | |
# ensures the version information can be retrieved | |
server_tokens on; | |
} | |
} | |
# configuration file /etc/nginx/conf.d/elasticbeanstalk/00_application.conf: | |
location / { | |
proxy_pass http://127.0.0.1:4000; | |
proxy_http_version 1.1; | |
proxy_set_header Connection $connection_upgrade; | |
proxy_set_header Upgrade $http_upgrade; | |
proxy_set_header Host $host; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
} | |
# configuration file /etc/nginx/conf.d/elasticbeanstalk/healthd.conf: | |
if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { | |
set $year $1; | |
set $month $2; | |
set $day $3; | |
set $hour $4; | |
} | |
access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
exporter = "otlp" | |
processor = "batch" | |
[exporters.otlp] | |
# Alternatively the OTEL_EXPORTER_OTLP_ENDPOINT environment variable can also be used. | |
host = "localhost" | |
port = 4317 | |
# Optional: enable SSL, for endpoints that support it | |
# use_ssl = true | |
# Optional: set a filesystem path to a pem file to be used for SSL encryption | |
# (when use_ssl = true) | |
# ssl_cert_path = "/path/to/cert.pem" | |
[processors.batch] | |
max_queue_size = 2048 | |
schedule_delay_millis = 5000 | |
max_export_batch_size = 512 | |
[service] | |
name = "nginx-proxy" # Opentelemetry resource name | |
[sampler] | |
name = "AlwaysOn" # Also: AlwaysOff, TraceIdRatioBased | |
ratio = 0.1 | |
parent_based = false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment