You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
211 lines
5.2 KiB
211 lines
5.2 KiB
load(":envoy_http_archive.bzl", "envoy_http_archive") |
|
load(":external_deps.bzl", "load_repository_locations") |
|
load(":repository_locations.bzl", "REPOSITORY_LOCATIONS_SPEC") |
|
|
|
REPOSITORY_LOCATIONS = load_repository_locations(REPOSITORY_LOCATIONS_SPEC) |
|
|
|
# Use this macro to reference any HTTP archive from bazel/repository_locations.bzl. |
|
def external_http_archive(name, **kwargs): |
|
envoy_http_archive( |
|
name, |
|
locations = REPOSITORY_LOCATIONS, |
|
**kwargs |
|
) |
|
|
|
def api_dependencies(): |
|
external_http_archive( |
|
name = "bazel_skylib", |
|
) |
|
external_http_archive( |
|
name = "com_envoyproxy_protoc_gen_validate", |
|
) |
|
external_http_archive( |
|
name = "com_google_googleapis", |
|
) |
|
external_http_archive( |
|
name = "com_github_cncf_udpa", |
|
) |
|
|
|
external_http_archive( |
|
name = "prometheus_metrics_model", |
|
build_file_content = PROMETHEUSMETRICS_BUILD_CONTENT, |
|
) |
|
external_http_archive( |
|
name = "opencensus_proto", |
|
) |
|
external_http_archive( |
|
name = "rules_proto", |
|
) |
|
external_http_archive( |
|
name = "com_github_openzipkin_zipkinapi", |
|
build_file_content = ZIPKINAPI_BUILD_CONTENT, |
|
) |
|
external_http_archive( |
|
name = "opentelemetry_proto", |
|
build_file_content = OPENTELEMETRY_BUILD_CONTENT, |
|
) |
|
external_http_archive( |
|
name = "com_github_bufbuild_buf", |
|
build_file_content = BUF_BUILD_CONTENT, |
|
) |
|
|
|
PROMETHEUSMETRICS_BUILD_CONTENT = """ |
|
load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library") |
|
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") |
|
|
|
api_cc_py_proto_library( |
|
name = "client_model", |
|
srcs = [ |
|
"io/prometheus/client/metrics.proto", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
go_proto_library( |
|
name = "client_model_go_proto", |
|
importpath = "github.com/prometheus/client_model/go", |
|
proto = ":client_model", |
|
visibility = ["//visibility:public"], |
|
) |
|
""" |
|
|
|
OPENCENSUSTRACE_BUILD_CONTENT = """ |
|
load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library") |
|
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") |
|
|
|
api_cc_py_proto_library( |
|
name = "trace_model", |
|
srcs = [ |
|
"trace.proto", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
go_proto_library( |
|
name = "trace_model_go_proto", |
|
importpath = "trace_model", |
|
proto = ":trace_model", |
|
visibility = ["//visibility:public"], |
|
) |
|
""" |
|
|
|
ZIPKINAPI_BUILD_CONTENT = """ |
|
|
|
load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library") |
|
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") |
|
|
|
api_cc_py_proto_library( |
|
name = "zipkin", |
|
srcs = [ |
|
"zipkin-jsonv2.proto", |
|
"zipkin.proto", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
go_proto_library( |
|
name = "zipkin_go_proto", |
|
proto = ":zipkin", |
|
visibility = ["//visibility:public"], |
|
) |
|
""" |
|
|
|
OPENTELEMETRY_BUILD_CONTENT = """ |
|
load("@envoy_api//bazel:api_build_system.bzl", "api_cc_py_proto_library") |
|
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") |
|
|
|
api_cc_py_proto_library( |
|
name = "common", |
|
srcs = [ |
|
"opentelemetry/proto/common/v1/common.proto", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
api_cc_py_proto_library( |
|
name = "resource", |
|
srcs = [ |
|
"opentelemetry/proto/resource/v1/resource.proto", |
|
], |
|
deps = [ |
|
"//:common", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
go_proto_library( |
|
name = "common_go_proto", |
|
importpath = "go.opentelemetry.io/proto/otlp/common/v1", |
|
proto = ":common", |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
# TODO(snowp): Generating one Go package from all of these protos could cause problems in the future, |
|
# but nothing references symbols from collector or resource so we're fine for now. |
|
api_cc_py_proto_library( |
|
name = "logs", |
|
srcs = [ |
|
"opentelemetry/proto/collector/logs/v1/logs_service.proto", |
|
"opentelemetry/proto/logs/v1/logs.proto", |
|
], |
|
deps = [ |
|
"//:common", |
|
"//:resource", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
go_proto_library( |
|
name = "logs_go_proto", |
|
importpath = "go.opentelemetry.io/proto/otlp/logs/v1", |
|
proto = ":logs", |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
api_cc_py_proto_library( |
|
name = "metrics", |
|
srcs = [ |
|
"opentelemetry/proto/collector/metrics/v1/metrics_service.proto", |
|
"opentelemetry/proto/metrics/v1/metrics.proto", |
|
], |
|
deps = [ |
|
"//:common", |
|
"//:resource", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
go_proto_library( |
|
name = "metrics_go_proto", |
|
importpath = "go.opentelemetry.io/proto/otlp/metrics/v1", |
|
proto = ":metrics", |
|
visibility = ["//visibility:public"], |
|
) |
|
|
|
api_cc_py_proto_library( |
|
name = "trace", |
|
srcs = [ |
|
"opentelemetry/proto/collector/trace/v1/trace_service.proto", |
|
"opentelemetry/proto/trace/v1/trace.proto", |
|
], |
|
deps = [ |
|
"//:common", |
|
"//:resource", |
|
], |
|
visibility = ["//visibility:public"], |
|
) |
|
""" |
|
|
|
BUF_BUILD_CONTENT = """ |
|
package( |
|
default_visibility = ["//visibility:public"], |
|
) |
|
|
|
filegroup( |
|
name = "buf", |
|
srcs = [ |
|
"@com_github_bufbuild_buf//:bin/buf", |
|
], |
|
tags = ["manual"], # buf is downloaded as a linux binary; tagged manual to prevent build for non-linux users |
|
) |
|
"""
|
|
|