Skip to content

Commit cb5528d

Browse files
perhapsmapleThomsonTanlalitb
authored
[INSTALL] Add pkg-config support for exporters (#3829)
Signed-off-by: Harish <140232061+perhapsmaple@users.noreply.github.com> Co-authored-by: Tom Tan <Tom.Tan@microsoft.com> Co-authored-by: Tom Tan <lilotom@gmail.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com>
1 parent 9de68d8 commit cb5528d

File tree

7 files changed

+256
-0
lines changed

7 files changed

+256
-0
lines changed

ci/verify_packages.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,45 @@ set -ex
77

88
PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig:${PKG_CONFIG_PATH:-}"
99

10+
validate_package() {
11+
local package=$1
12+
if pkg-config --exists "${package}" 2>/dev/null; then
13+
pkg-config --validate "${package}" --print-errors
14+
fi
15+
}
16+
17+
# Core packages
1018
for library in api common logs metrics resources trace version; do
1119
pkg-config --validate opentelemetry_${library} --print-errors
1220
done
21+
22+
# ostream exporter
23+
for variant in span span_builder metrics metrics_builder logs logs_builder; do
24+
validate_package "opentelemetry_exporter_ostream_${variant}"
25+
done
26+
27+
# OTLP exporters
28+
validate_package "opentelemetry_otlp_recordable"
29+
validate_package "opentelemetry_exporter_otlp_builder_utils"
30+
31+
# OTLP gRPC exporter
32+
validate_package "opentelemetry_exporter_otlp_grpc"
33+
for variant in client builder log log_builder metrics metric_builder; do
34+
validate_package "opentelemetry_exporter_otlp_grpc_${variant}"
35+
done
36+
37+
# OTLP HTTP and File exporters
38+
for protocol in http file; do
39+
validate_package "opentelemetry_exporter_otlp_${protocol}"
40+
for variant in client builder log log_builder metric metric_builder; do
41+
validate_package "opentelemetry_exporter_otlp_${protocol}_${variant}"
42+
done
43+
done
44+
45+
# Other exporters
46+
for exporter in prometheus prometheus_builder zipkin_trace elasticsearch_logs in_memory in_memory_metric; do
47+
validate_package "opentelemetry_exporter_${exporter}"
48+
done
49+
50+
# Optional features
51+
validate_package "opentelemetry_configuration"

exporters/elasticsearch/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
include(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake)
5+
46
add_library(opentelemetry_exporter_elasticsearch_logs
57
src/es_log_record_exporter.cc src/es_log_recordable.cc)
68

@@ -34,6 +36,13 @@ otel_add_component(
3436
"es_log_recordable.h"
3537
EXCLUDE)
3638

39+
if(OPENTELEMETRY_INSTALL)
40+
opentelemetry_add_pkgconfig(
41+
exporter_elasticsearch_logs "OpenTelemetry Exporter - Elasticsearch"
42+
"Exports log records to Elasticsearch."
43+
"opentelemetry_trace opentelemetry_logs")
44+
endif()
45+
3746
if(BUILD_TESTING)
3847
add_executable(es_log_record_exporter_test
3948
test/es_log_record_exporter_test.cc)

exporters/memory/CMakeLists.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
include(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake)
5+
46
add_library(opentelemetry_exporter_in_memory
57
src/in_memory_span_exporter_factory.cc)
68

@@ -46,6 +48,17 @@ otel_add_component(
4648
PATTERN
4749
"*.h")
4850

51+
if(OPENTELEMETRY_INSTALL)
52+
opentelemetry_add_pkgconfig(
53+
exporter_in_memory "OpenTelemetry Exporter - In-Memory Span"
54+
"In-memory span exporter for testing and debugging." "opentelemetry_trace")
55+
56+
opentelemetry_add_pkgconfig(
57+
exporter_in_memory_metric "OpenTelemetry Exporter - In-Memory Metric"
58+
"In-memory metric exporter for testing and debugging."
59+
"opentelemetry_metrics")
60+
endif()
61+
4962
if(BUILD_TESTING)
5063
add_executable(in_memory_span_data_test test/in_memory_span_data_test.cc)
5164
add_executable(in_memory_span_exporter_test

exporters/ostream/CMakeLists.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
include(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake)
5+
46
#
57
# opentelemetry_exporter_ostream_span
68
#
@@ -188,3 +190,34 @@ otel_add_component(
188190
"console_push_metric_builder.h"
189191
PATTERN
190192
"console_span_builder.h")
193+
194+
if(OPENTELEMETRY_INSTALL)
195+
opentelemetry_add_pkgconfig(
196+
exporter_ostream_span "OpenTelemetry Exporter - OStream Span"
197+
"Exports trace spans to output stream." "opentelemetry_trace")
198+
199+
opentelemetry_add_pkgconfig(
200+
exporter_ostream_span_builder
201+
"OpenTelemetry Exporter - OStream Span Builder"
202+
"Builder for OStream span exporter." "opentelemetry_exporter_ostream_span")
203+
204+
opentelemetry_add_pkgconfig(
205+
exporter_ostream_metrics "OpenTelemetry Exporter - OStream Metrics"
206+
"Exports metrics to output stream." "opentelemetry_metrics")
207+
208+
opentelemetry_add_pkgconfig(
209+
exporter_ostream_metrics_builder
210+
"OpenTelemetry Exporter - OStream Metrics Builder"
211+
"Builder for OStream metrics exporter."
212+
"opentelemetry_exporter_ostream_metrics")
213+
214+
opentelemetry_add_pkgconfig(
215+
exporter_ostream_logs "OpenTelemetry Exporter - OStream Logs"
216+
"Exports log records to output stream." "opentelemetry_logs")
217+
218+
opentelemetry_add_pkgconfig(
219+
exporter_ostream_logs_builder
220+
"OpenTelemetry Exporter - OStream Logs Builder"
221+
"Builder for OStream log record exporter."
222+
"opentelemetry_exporter_ostream_logs")
223+
endif()

exporters/otlp/CMakeLists.txt

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
include(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake)
5+
46
if(protobuf_lib_type STREQUAL "STATIC_LIBRARY")
57
set(OPENTELEMETRY_OTLP_TARGETS_LIB_TYPE STATIC)
68
else()
@@ -54,6 +56,20 @@ target_include_directories(
5456
target_link_libraries(opentelemetry_exporter_otlp_builder_utils
5557
PUBLIC opentelemetry_otlp_recordable)
5658

59+
if(OPENTELEMETRY_INSTALL)
60+
opentelemetry_add_pkgconfig(
61+
otlp_recordable
62+
"OpenTelemetry OTLP - Recordable"
63+
"OTLP recordable implementation for spans, metrics, and logs."
64+
"opentelemetry_trace opentelemetry_metrics opentelemetry_logs opentelemetry_resources"
65+
)
66+
67+
opentelemetry_add_pkgconfig(
68+
exporter_otlp_builder_utils "OpenTelemetry OTLP - Builder Utils"
69+
"Common utilities for OTLP exporter builders."
70+
"opentelemetry_otlp_recordable")
71+
endif()
72+
5773
if(WITH_OTLP_GRPC)
5874
if(NOT DEFINED grpc_lib_type)
5975
message(
@@ -232,6 +248,48 @@ if(WITH_OTLP_GRPC)
232248
list(APPEND OPENTELEMETRY_OTLP_GRPC_BUILDER_TARGETS
233249
opentelemetry_exporter_otlp_grpc_metric_builder)
234250

251+
if(OPENTELEMETRY_INSTALL)
252+
opentelemetry_add_pkgconfig(
253+
exporter_otlp_grpc_client "OpenTelemetry OTLP - gRPC Client"
254+
"gRPC client for OTLP protocol." "opentelemetry_api opentelemetry_common")
255+
256+
opentelemetry_add_pkgconfig(
257+
exporter_otlp_grpc "OpenTelemetry OTLP - gRPC Span Exporter"
258+
"Exports trace spans via OTLP gRPC."
259+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_grpc_client")
260+
261+
opentelemetry_add_pkgconfig(
262+
exporter_otlp_grpc_builder
263+
"OpenTelemetry OTLP - gRPC Span Builder"
264+
"Builder for OTLP gRPC span exporter."
265+
"opentelemetry_exporter_otlp_grpc opentelemetry_exporter_otlp_builder_utils"
266+
)
267+
268+
opentelemetry_add_pkgconfig(
269+
exporter_otlp_grpc_log "OpenTelemetry OTLP - gRPC Log Exporter"
270+
"Exports log records via OTLP gRPC."
271+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_grpc_client")
272+
273+
opentelemetry_add_pkgconfig(
274+
exporter_otlp_grpc_log_builder
275+
"OpenTelemetry OTLP - gRPC Log Builder"
276+
"Builder for OTLP gRPC log record exporter."
277+
"opentelemetry_exporter_otlp_grpc_log opentelemetry_exporter_otlp_builder_utils"
278+
)
279+
280+
opentelemetry_add_pkgconfig(
281+
exporter_otlp_grpc_metrics "OpenTelemetry OTLP - gRPC Metric Exporter"
282+
"Exports metrics via OTLP gRPC."
283+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_grpc_client")
284+
285+
opentelemetry_add_pkgconfig(
286+
exporter_otlp_grpc_metric_builder
287+
"OpenTelemetry OTLP - gRPC Metric Builder"
288+
"Builder for OTLP gRPC metric exporter."
289+
"opentelemetry_exporter_otlp_grpc_metrics opentelemetry_exporter_otlp_builder_utils"
290+
)
291+
endif()
292+
235293
endif()
236294

237295
if(WITH_OTLP_HTTP)
@@ -394,6 +452,48 @@ if(WITH_OTLP_HTTP)
394452
list(APPEND OPENTELEMETRY_OTLP_HTTP_BUILDER_TARGETS
395453
opentelemetry_exporter_otlp_http_metric_builder)
396454

455+
if(OPENTELEMETRY_INSTALL)
456+
opentelemetry_add_pkgconfig(
457+
exporter_otlp_http_client "OpenTelemetry OTLP - HTTP Client"
458+
"HTTP client for OTLP protocol." "opentelemetry_api")
459+
460+
opentelemetry_add_pkgconfig(
461+
exporter_otlp_http "OpenTelemetry OTLP - HTTP Span Exporter"
462+
"Exports trace spans via OTLP HTTP."
463+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_http_client")
464+
465+
opentelemetry_add_pkgconfig(
466+
exporter_otlp_http_builder
467+
"OpenTelemetry OTLP - HTTP Span Builder"
468+
"Builder for OTLP HTTP span exporter."
469+
"opentelemetry_exporter_otlp_http opentelemetry_exporter_otlp_builder_utils"
470+
)
471+
472+
opentelemetry_add_pkgconfig(
473+
exporter_otlp_http_log "OpenTelemetry OTLP - HTTP Log Exporter"
474+
"Exports log records via OTLP HTTP."
475+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_http_client")
476+
477+
opentelemetry_add_pkgconfig(
478+
exporter_otlp_http_log_builder
479+
"OpenTelemetry OTLP - HTTP Log Builder"
480+
"Builder for OTLP HTTP log record exporter."
481+
"opentelemetry_exporter_otlp_http_log opentelemetry_exporter_otlp_builder_utils"
482+
)
483+
484+
opentelemetry_add_pkgconfig(
485+
exporter_otlp_http_metric "OpenTelemetry OTLP - HTTP Metric Exporter"
486+
"Exports metrics via OTLP HTTP."
487+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_http_client")
488+
489+
opentelemetry_add_pkgconfig(
490+
exporter_otlp_http_metric_builder
491+
"OpenTelemetry OTLP - HTTP Metric Builder"
492+
"Builder for OTLP HTTP metric exporter."
493+
"opentelemetry_exporter_otlp_http_metric opentelemetry_exporter_otlp_builder_utils"
494+
)
495+
endif()
496+
397497
endif()
398498

399499
if(WITH_OTLP_FILE)
@@ -549,6 +649,48 @@ if(WITH_OTLP_FILE)
549649
list(APPEND OPENTELEMETRY_OTLP_FILE_BUILDER_TARGETS
550650
opentelemetry_exporter_otlp_file_metric_builder)
551651

652+
if(OPENTELEMETRY_INSTALL)
653+
opentelemetry_add_pkgconfig(
654+
exporter_otlp_file_client "OpenTelemetry OTLP - File Client"
655+
"File client for OTLP protocol." "opentelemetry_api opentelemetry_common")
656+
657+
opentelemetry_add_pkgconfig(
658+
exporter_otlp_file "OpenTelemetry OTLP - File Span Exporter"
659+
"Exports trace spans to file via OTLP."
660+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_file_client")
661+
662+
opentelemetry_add_pkgconfig(
663+
exporter_otlp_file_builder
664+
"OpenTelemetry OTLP - File Span Builder"
665+
"Builder for OTLP file span exporter."
666+
"opentelemetry_exporter_otlp_file opentelemetry_exporter_otlp_builder_utils"
667+
)
668+
669+
opentelemetry_add_pkgconfig(
670+
exporter_otlp_file_log "OpenTelemetry OTLP - File Log Exporter"
671+
"Exports log records to file via OTLP."
672+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_file_client")
673+
674+
opentelemetry_add_pkgconfig(
675+
exporter_otlp_file_log_builder
676+
"OpenTelemetry OTLP - File Log Builder"
677+
"Builder for OTLP file log record exporter."
678+
"opentelemetry_exporter_otlp_file_log opentelemetry_exporter_otlp_builder_utils"
679+
)
680+
681+
opentelemetry_add_pkgconfig(
682+
exporter_otlp_file_metric "OpenTelemetry OTLP - File Metric Exporter"
683+
"Exports metrics to file via OTLP."
684+
"opentelemetry_otlp_recordable opentelemetry_exporter_otlp_file_client")
685+
686+
opentelemetry_add_pkgconfig(
687+
exporter_otlp_file_metric_builder
688+
"OpenTelemetry OTLP - File Metric Builder"
689+
"Builder for OTLP file metric exporter."
690+
"opentelemetry_exporter_otlp_file_metric opentelemetry_exporter_otlp_builder_utils"
691+
)
692+
endif()
693+
552694
endif()
553695

554696
target_link_libraries(

exporters/prometheus/CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
include(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake)
5+
46
#
57
# opentelemetry_exporter_prometheus
68
#
@@ -72,6 +74,16 @@ otel_add_component(
7274
PATTERN
7375
"prometheus_pull_builder.h")
7476

77+
if(OPENTELEMETRY_INSTALL)
78+
opentelemetry_add_pkgconfig(
79+
exporter_prometheus "OpenTelemetry Exporter - Prometheus"
80+
"Exports metrics in Prometheus format." "opentelemetry_metrics")
81+
82+
opentelemetry_add_pkgconfig(
83+
exporter_prometheus_builder "OpenTelemetry Exporter - Prometheus Builder"
84+
"Builder for Prometheus exporter." "opentelemetry_exporter_prometheus")
85+
endif()
86+
7587
if(BUILD_TESTING)
7688
add_subdirectory(test)
7789
endif()

exporters/zipkin/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright The OpenTelemetry Authors
22
# SPDX-License-Identifier: Apache-2.0
33

4+
include(${PROJECT_SOURCE_DIR}/cmake/pkgconfig.cmake)
5+
46
#
57
# opentelemetry_exporter_zipkin_trace
68
#
@@ -40,6 +42,12 @@ otel_add_component(
4042
"recordable.h"
4143
EXCLUDE)
4244

45+
if(OPENTELEMETRY_INSTALL)
46+
opentelemetry_add_pkgconfig(
47+
exporter_zipkin_trace "OpenTelemetry Exporter - Zipkin"
48+
"Exports trace spans in Zipkin format." "opentelemetry_trace")
49+
endif()
50+
4351
if(BUILD_TESTING)
4452
add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
4553

0 commit comments

Comments
 (0)