From d61aa69039457b0c1aa4641150ea33aee3fa0818 Mon Sep 17 00:00:00 2001 From: Philip Kuryloski Date: Wed, 5 May 2021 11:43:03 +0200 Subject: [PATCH] Add rabbitmq_prometheus to bazel --- deps/rabbitmq_prometheus/BUILD.bazel | 111 +++++++++++++++++++++++++++ workspace_helpers.bzl | 28 +++++++ 2 files changed, 139 insertions(+) create mode 100644 deps/rabbitmq_prometheus/BUILD.bazel diff --git a/deps/rabbitmq_prometheus/BUILD.bazel b/deps/rabbitmq_prometheus/BUILD.bazel new file mode 100644 index 0000000000..06a2387e16 --- /dev/null +++ b/deps/rabbitmq_prometheus/BUILD.bazel @@ -0,0 +1,111 @@ +load("@bazel-erlang//:ct.bzl", "ct_suite") +load("//:rabbitmq_home.bzl", "rabbitmq_home") +load("//:rabbitmq_run.bzl", "rabbitmq_run") +load( + "//:rabbitmq.bzl", + "APP_VERSION", + "RABBITMQ_ERLC_OPTS", + "RABBITMQ_TEST_ERLC_OPTS", + "rabbitmq_lib", +) + +APP_NAME = "rabbitmq_prometheus" + +APP_MODULE = "rabbit_prometheus_app" + +APP_ENV = """[ + {return_per_object_metrics, false} +]""" + +BUILD_DEPS = [ + "//deps/amqp_client:bazel_erlang_lib", + "//deps/rabbit_common:bazel_erlang_lib", +] + +DEPS = [ + "@prometheus//:bazel_erlang_lib", +] + +RUNTIME_DEPS = [ + "//deps/rabbit:bazel_erlang_lib", + "//deps/rabbitmq_management_agent:bazel_erlang_lib", + "//deps/rabbitmq_web_dispatch:bazel_erlang_lib", + "@accept//:bazel_erlang_lib", +] + +rabbitmq_lib( + app_module = APP_MODULE, + app_name = APP_NAME, + app_version = APP_VERSION, + erlc_opts = RABBITMQ_ERLC_OPTS, + test_erlc_opts = RABBITMQ_TEST_ERLC_OPTS, + build_deps = BUILD_DEPS, + runtime_deps = RUNTIME_DEPS, + deps = DEPS, +) + +rabbitmq_home( + name = "broker-for-tests-home", + plugins = [ + "//deps/rabbit:bazel_erlang_lib", + ":bazel_erlang_lib", + ], +) + +rabbitmq_run( + name = "rabbitmq-for-tests-run", + home = ":broker-for-tests-home", +) + +ct_suite( + name = "config_schema_SUITE", + data = [ + "@rabbitmq_ct_helpers//tools/tls-certs:Makefile", + "@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in", + ], + erlc_opts = RABBITMQ_TEST_ERLC_OPTS, + test_env = { + "RABBITMQ_CT_SKIP_AS_ERROR": "true", + "RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_prometheus/rabbitmq-for-tests-run", + "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_prometheus/broker-for-tests-home/sbin/rabbitmqctl", + "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_prometheus/broker-for-tests-home/sbin/rabbitmq-plugins", + }, + tools = [ + ":rabbitmq-for-tests-run", + ], + runtime_deps = [ + "//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib", + "//deps/rabbitmq_cli:rabbitmqctl", + "@rabbitmq_ct_client_helpers//:bazel_erlang_lib", + "@rabbitmq_ct_helpers//:bazel_erlang_lib", + ], +) + +ct_suite( + name = "rabbit_prometheus_http_SUITE", + size = "small", + data = [ + "@rabbitmq_ct_helpers//tools/tls-certs:Makefile", + "@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in", + ], + erlc_opts = RABBITMQ_TEST_ERLC_OPTS, + test_env = { + "RABBITMQ_CT_SKIP_AS_ERROR": "true", + "RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_prometheus/rabbitmq-for-tests-run", + "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_prometheus/broker-for-tests-home/sbin/rabbitmqctl", + "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_prometheus/broker-for-tests-home/sbin/rabbitmq-plugins", + }, + tools = [ + ":rabbitmq-for-tests-run", + ], + deps = [ + "//deps/amqp_client:bazel_erlang_lib", + "//deps/rabbit_common:bazel_erlang_lib", + "@rabbitmq_ct_helpers//:bazel_erlang_lib", + ], + runtime_deps = [ + "//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib", + "//deps/rabbitmq_cli:rabbitmqctl", + "@rabbitmq_ct_client_helpers//:bazel_erlang_lib", + ], +) diff --git a/workspace_helpers.bzl b/workspace_helpers.bzl index 1c5b861f4f..e6d3195be7 100644 --- a/workspace_helpers.bzl +++ b/workspace_helpers.bzl @@ -6,6 +6,11 @@ load("@bazel-erlang//:hex_pm.bzl", "hex_pm_bazel_erlang_lib") load("//:rabbitmq.bzl", "APP_VERSION") def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"): + hex_pm_bazel_erlang_lib( + name = "accept", + version = "0.3.5", + ) + github_bazel_erlang_lib( name = "aten", org = "rabbitmq", @@ -148,6 +153,21 @@ erlang_lib( urls = ["https://github.com/rabbitmq/osiris/archive/master.zip"], ) + github_bazel_erlang_lib( + name = "prometheus", + org = "deadtrickster", + repo = "prometheus.erl", + first_srcs = [ + "src/prometheus_collector.erl", + "src/prometheus_format.erl", + "src/prometheus_instrumenter.erl", + "src/prometheus_metric.erl", + ], + deps = [ + "@quantile_estimator//:bazel_erlang_lib", + ], + ) + github_bazel_erlang_lib( name = "proper", first_srcs = [ @@ -157,6 +177,14 @@ erlang_lib( org = "manopapad", ) + hex_pm_bazel_erlang_lib( + name = "quantile_estimator", + version = "0.2.1", + erlc_opts = [ + "+debug_info", + ], + ) + github_bazel_erlang_lib( name = "ra", first_srcs = [