make urls from env take precedence

This commit is contained in:
Corentin Leruth 2024-08-09 08:17:08 +02:00
parent f0dd5a7a35
commit e73ea7e6ad
6 changed files with 50 additions and 59 deletions

View file

@ -42,35 +42,30 @@ let make ?(debug = !debug_) ?url ?url_traces ?url_metrics ?url_logs
?(batch_timeout_ms = 500) () : t = ?(batch_timeout_ms = 500) () : t =
let url_traces, url_metrics, url_logs = let url_traces, url_metrics, url_logs =
let base_url = let base_url =
match url with let base_url =
| None -> Option.value (get_url_from_env ()) ~default:default_url match get_url_from_env () with
| Some url -> remove_trailing_slash url | None -> Option.value url ~default:default_url
| Some url -> remove_trailing_slash url
in
remove_trailing_slash base_url
in in
let url_traces = let url_traces =
match url_traces with match get_url_traces_from_env () with
| None -> | None -> Option.value url_traces ~default:(base_url ^ "/v1/traces")
Option.value
(get_url_traces_from_env ())
~default:(base_url ^ "/v1/traces")
| Some url -> url | Some url -> url
in in
let url_metrics = let url_metrics =
match url_metrics with match get_url_metrics_from_env () with
| None -> | None -> Option.value url_metrics ~default:(base_url ^ "/v1/metrics")
Option.value
(get_url_metrics_from_env ())
~default:(base_url ^ "/v1/metrics")
| Some url -> url | Some url -> url
in in
let url_logs = let url_logs =
match url_logs with match get_url_logs_from_env () with
| None -> | None -> Option.value url_logs ~default:(base_url ^ "/v1/logs")
Option.value (get_url_logs_from_env ()) ~default:(base_url ^ "/v1/logs")
| Some url -> url | Some url -> url
in in
url_traces, url_metrics, url_logs url_traces, url_metrics, url_logs
in in
{ {
debug; debug;
url_traces; url_traces;

View file

@ -45,30 +45,26 @@ let make ?(debug = !debug_) ?url ?url_traces ?url_metrics ?url_logs
let url_traces, url_metrics, url_logs = let url_traces, url_metrics, url_logs =
let base_url = let base_url =
match url with let base_url =
| None -> Option.value (get_url_from_env ()) ~default:default_url match get_url_from_env () with
| Some url -> remove_trailing_slash url | None -> Option.value url ~default:default_url
| Some url -> remove_trailing_slash url
in
remove_trailing_slash base_url
in in
let url_traces = let url_traces =
match url_traces with match get_url_traces_from_env () with
| None -> | None -> Option.value url_traces ~default:(base_url ^ "/v1/traces")
Option.value
(get_url_traces_from_env ())
~default:(base_url ^ "/v1/traces")
| Some url -> url | Some url -> url
in in
let url_metrics = let url_metrics =
match url_metrics with match get_url_metrics_from_env () with
| None -> | None -> Option.value url_metrics ~default:(base_url ^ "/v1/metrics")
Option.value
(get_url_metrics_from_env ())
~default:(base_url ^ "/v1/metrics")
| Some url -> url | Some url -> url
in in
let url_logs = let url_logs =
match url_logs with match get_url_logs_from_env () with
| None -> | None -> Option.value url_logs ~default:(base_url ^ "/v1/logs")
Option.value (get_url_logs_from_env ()) ~default:(base_url ^ "/v1/logs")
| Some url -> url | Some url -> url
in in
url_traces, url_metrics, url_logs url_traces, url_metrics, url_logs

View file

@ -17,25 +17,25 @@ url_logs = http://localhost:5000/v1/logs
------ ------
--- base_url_from_both_config_and_env --- --- base_url_from_both_config_and_env ---
url_traces = http://localhost:3000/v1/traces url_traces = http://localhost:5000/v1/traces
url_metrics = http://localhost:3000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:3000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
--- override_trace_url_from_config --- --- override_trace_url_from_config ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:3000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:3000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
--- override_trace_url_from_config --- --- override_trace_url_from_env ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:5000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:5000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
--- override_trace_url_from_both_config_and_env --- --- override_trace_url_from_both_config_and_env ---
url_traces = http://localhost:3001/send/traces/config url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:5000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:5000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
@ -46,7 +46,7 @@ url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs
------ ------
--- set_all_in_config --- --- set_all_in_env ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:3002/send/metrics url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs
@ -58,7 +58,7 @@ url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs
------ ------
--- remove_trailing_slash_config --- --- remove_trailing_slash_env ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:3002/send/metrics url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs

View file

@ -21,7 +21,7 @@ let base_url_from_env () =
test_urls ~name:"base_url_from_env" config test_urls ~name:"base_url_from_env" config
let base_url_from_both_config_and_env () = let base_url_from_both_config_and_env () =
(* url from config should take precedence *) (* url from env should take precedence *)
Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:5000"; Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:5000";
let config = Config.make ~url:"http://localhost:3000" () in let config = Config.make ~url:"http://localhost:3000" () in
test_urls ~name:"base_url_from_both_config_and_env" config test_urls ~name:"base_url_from_both_config_and_env" config
@ -37,7 +37,7 @@ let override_trace_url_from_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"
"http://localhost:3001/send/traces"; "http://localhost:3001/send/traces";
let config = Config.make () in let config = Config.make () in
test_urls ~name:"override_trace_url_from_config" config test_urls ~name:"override_trace_url_from_env" config
let override_trace_url_from_both_config_and_env () = let override_trace_url_from_both_config_and_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"
@ -63,7 +63,7 @@ let set_all_in_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT" Unix.putenv "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT"
"http://localhost:3003/send/logs"; "http://localhost:3003/send/logs";
let config = Config.make () in let config = Config.make () in
test_urls ~name:"set_all_in_config" config test_urls ~name:"set_all_in_env" config
let remove_trailing_slash_config () = let remove_trailing_slash_config () =
let config = Config.make ~url:"http://localhost:3000/" () in let config = Config.make ~url:"http://localhost:3000/" () in
@ -72,7 +72,7 @@ let remove_trailing_slash_config () =
let remove_trailing_slash_env () = let remove_trailing_slash_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:3000/"; Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:3000/";
let config = Config.make () in let config = Config.make () in
test_urls ~name:"remove_trailing_slash_config" config test_urls ~name:"remove_trailing_slash_env" config
let () = default_url () let () = default_url ()

View file

@ -17,25 +17,25 @@ url_logs = http://localhost:5000/v1/logs
------ ------
--- base_url_from_both_config_and_env --- --- base_url_from_both_config_and_env ---
url_traces = http://localhost:3000/v1/traces url_traces = http://localhost:5000/v1/traces
url_metrics = http://localhost:3000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:3000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
--- override_trace_url_from_config --- --- override_trace_url_from_config ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:3000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:3000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
--- override_trace_url_from_config --- --- override_trace_url_from_env ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:5000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:5000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
--- override_trace_url_from_both_config_and_env --- --- override_trace_url_from_both_config_and_env ---
url_traces = http://localhost:3001/send/traces/config url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:5000/v1/metrics url_metrics = http://localhost:5000/v1/metrics
url_logs = http://localhost:5000/v1/logs url_logs = http://localhost:5000/v1/logs
------ ------
@ -46,7 +46,7 @@ url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs
------ ------
--- set_all_in_config --- --- set_all_in_env ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:3002/send/metrics url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs
@ -58,7 +58,7 @@ url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs
------ ------
--- remove_trailing_slash_config --- --- remove_trailing_slash_env ---
url_traces = http://localhost:3001/send/traces url_traces = http://localhost:3001/send/traces
url_metrics = http://localhost:3002/send/metrics url_metrics = http://localhost:3002/send/metrics
url_logs = http://localhost:3003/send/logs url_logs = http://localhost:3003/send/logs

View file

@ -21,7 +21,7 @@ let base_url_from_env () =
test_urls ~name:"base_url_from_env" config test_urls ~name:"base_url_from_env" config
let base_url_from_both_config_and_env () = let base_url_from_both_config_and_env () =
(* url from config should take precedence *) (* url from env should take precedence *)
Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:5000"; Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:5000";
let config = Config.make ~url:"http://localhost:3000" () in let config = Config.make ~url:"http://localhost:3000" () in
test_urls ~name:"base_url_from_both_config_and_env" config test_urls ~name:"base_url_from_both_config_and_env" config
@ -37,7 +37,7 @@ let override_trace_url_from_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"
"http://localhost:3001/send/traces"; "http://localhost:3001/send/traces";
let config = Config.make () in let config = Config.make () in
test_urls ~name:"override_trace_url_from_config" config test_urls ~name:"override_trace_url_from_env" config
let override_trace_url_from_both_config_and_env () = let override_trace_url_from_both_config_and_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" Unix.putenv "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"
@ -63,7 +63,7 @@ let set_all_in_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT" Unix.putenv "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT"
"http://localhost:3003/send/logs"; "http://localhost:3003/send/logs";
let config = Config.make () in let config = Config.make () in
test_urls ~name:"set_all_in_config" config test_urls ~name:"set_all_in_env" config
let remove_trailing_slash_config () = let remove_trailing_slash_config () =
let config = Config.make ~url:"http://localhost:3000/" () in let config = Config.make ~url:"http://localhost:3000/" () in
@ -72,7 +72,7 @@ let remove_trailing_slash_config () =
let remove_trailing_slash_env () = let remove_trailing_slash_env () =
Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:3000/"; Unix.putenv "OTEL_EXPORTER_OTLP_ENDPOINT" "http://localhost:3000/";
let config = Config.make () in let config = Config.make () in
test_urls ~name:"remove_trailing_slash_config" config test_urls ~name:"remove_trailing_slash_env" config
let () = default_url () let () = default_url ()