diff --git a/config/nomad/authorizer.nmd.in b/config/nomad/authorizer.nmd.in index 7fd1366679d2a9bc8770f5df2c220e146aed9a46..0943d87b269a82593e002792780471bcf26bafc8 100644 --- a/config/nomad/authorizer.nmd.in +++ b/config/nomad/authorizer.nmd.in @@ -10,7 +10,7 @@ job "authorizer" { driver = "raw_exec" config { - command = "@AUTHORIZER_FULLPATH@", + command = "@AUTHORIZER_FULLPATH@" args = ["-config","${NOMAD_TASK_DIR}/authorizer.json"] } diff --git a/config/nomad/broker.nmd.in b/config/nomad/broker.nmd.in index c1adccc61884a375ecc34f49ce64cb7eda90b5bc..33774f0b4d2cd0aea9148d5f1ac94d452c3a48d6 100644 --- a/config/nomad/broker.nmd.in +++ b/config/nomad/broker.nmd.in @@ -10,7 +10,7 @@ job "broker" { driver = "raw_exec" config { - command = "@BROKER_FULLPATH@", + command = "@BROKER_FULLPATH@" args = ["-config","${NOMAD_TASK_DIR}/broker.json"] } diff --git a/config/nomad/discovery.nmd.in b/config/nomad/discovery.nmd.in index e3c36befc01f51fcbd7478342fe6fb6006d7b916..621403fc2e2dfe4313a2541864783da6b79c9ad4 100644 --- a/config/nomad/discovery.nmd.in +++ b/config/nomad/discovery.nmd.in @@ -10,7 +10,7 @@ job "discovery" { driver = "raw_exec" config { - command = "@DISCOVERY_FULLPATH@", + command = "@DISCOVERY_FULLPATH@" args = ["-config","${NOMAD_TASK_DIR}/discovery.json"] } diff --git a/config/nomad/file_transfer.nmd.in b/config/nomad/file_transfer.nmd.in index f9cdd712fecd507fc4ccbd38fea5670bb7e8f914..64f122677c9b42cf176a109c6a32d2231ae9ed4c 100644 --- a/config/nomad/file_transfer.nmd.in +++ b/config/nomad/file_transfer.nmd.in @@ -10,7 +10,7 @@ job "file_transfer" { driver = "raw_exec" config { - command = "@FILE_TRANSFER_FULLPATH@", + command = "@FILE_TRANSFER_FULLPATH@" args = ["-config","${NOMAD_TASK_DIR}/file_transfer.json"] } diff --git a/config/nomad/nginx.nmd.in b/config/nomad/nginx.nmd.in index 76d628eaa2d65d3b6b88c9c08bdeae6f71c0dfda..e908b7feefd14d683353824d5610f17a6378b3a4 100644 --- a/config/nomad/nginx.nmd.in +++ b/config/nomad/nginx.nmd.in @@ -24,7 +24,7 @@ job "nginx" { driver = "raw_exec" config { - command = "nginx", + command = "nginx" args = ["-c","${NOMAD_TASK_DIR}/nginx.conf"] } diff --git a/config/nomad/nginx_kill_lin.nmd b/config/nomad/nginx_kill_lin.nmd index cb3abbac259780ce7366042f24a19d635f032994..774fe211bc05e08728e0446ba998760a7ebaaf78 100644 --- a/config/nomad/nginx_kill_lin.nmd +++ b/config/nomad/nginx_kill_lin.nmd @@ -9,7 +9,7 @@ job "nginx_kill" { task "nginx_kill" { driver = "raw_exec" config { - command = "killall", + command = "killall" args = ["nginx"] } } diff --git a/config/nomad/nginx_kill_win.nmd b/config/nomad/nginx_kill_win.nmd index 3480ab65238a697acf6668b771a556e4ec61bc2b..b6873577b9da1232312854d43e6918eb6f22d834 100644 --- a/config/nomad/nginx_kill_win.nmd +++ b/config/nomad/nginx_kill_win.nmd @@ -10,7 +10,7 @@ job "nginx_kill" { task "nginx_kill" { driver = "raw_exec" config { - command = "taskkill", + command = "taskkill" args = ["/f","/im","nginx.exe"] } } diff --git a/config/nomad/receiver_fabric.nmd.in b/config/nomad/receiver_fabric.nmd.in index 0c4d2174727eb6bfca65167b4925001188601a81..3be448ba65db4bcc529ee391b2ea947730c1c8f3 100644 --- a/config/nomad/receiver_fabric.nmd.in +++ b/config/nomad/receiver_fabric.nmd.in @@ -10,7 +10,7 @@ job "receiver" { driver = "raw_exec" config { - command = "@RECEIVER_DIR@/@RECEIVER_NAME@", + command = "@RECEIVER_DIR@/@RECEIVER_NAME@" args = ["${NOMAD_TASK_DIR}/receiver.json"] } diff --git a/config/nomad/receiver_tcp.nmd.in b/config/nomad/receiver_tcp.nmd.in index 0d563934e9741538930dd51b7f90907ece08bb59..fe74ca93f3f633e85e1b3790d2c1be1888a49219 100644 --- a/config/nomad/receiver_tcp.nmd.in +++ b/config/nomad/receiver_tcp.nmd.in @@ -10,7 +10,7 @@ job "receiver" { driver = "raw_exec" config { - command = "@RECEIVER_DIR@/@RECEIVER_NAME@", + command = "@RECEIVER_DIR@/@RECEIVER_NAME@" args = ["${NOMAD_TASK_DIR}/receiver.json"] } diff --git a/deploy/asapo_services/asapo_overwrite_vars.tfvars b/deploy/asapo_services/asapo_overwrite_vars.tfvars index 11be9b69383e51a2a41f3fdbcc49433b4d58748d..3fbc457e1f1efac85d25fcfa476a10ad0cc78c09 100644 --- a/deploy/asapo_services/asapo_overwrite_vars.tfvars +++ b/deploy/asapo_services/asapo_overwrite_vars.tfvars @@ -1,7 +1,10 @@ -elk_logs = true +elk_logs = false -receiver_total_memory_size = 35000 -receiver_dataserver_cache_size = 30 #gb +asapo_monitor = true +asapo_monitor_alert = true + +receiver_total_memory_size = 500 +receiver_dataserver_cache_size = 0 #gb receiver_receive_to_disk_threshold = 50 # mb receiver_dataserver_nthreads = 8 @@ -10,7 +13,7 @@ influxdb_total_memory_size = 2000 fluentd_total_memory_size = 1000 elasticsearch_total_memory_size = 3000 kibana_total_memory_size = 1000 -mongo_total_memory_size = 20000 +mongo_total_memory_size = 2000 authorizer_total_memory_size = 512 discovery_total_memory_size = 512 diff --git a/deploy/asapo_services/run.sh b/deploy/asapo_services/run.sh index 0a4f38fc588f203f46a55db165818d9a4645406b..a017a07937e0d90f158026807298cc84f582bfc3 100755 --- a/deploy/asapo_services/run.sh +++ b/deploy/asapo_services/run.sh @@ -22,7 +22,7 @@ mkdir -p $NOMAD_ALLOC_HOST_SHARED $SERVICE_DATA_CLUSTER_SHARED $DATA_GLOBAL_SHAR chmod 777 $NOMAD_ALLOC_HOST_SHARED $SERVICE_DATA_CLUSTER_SHARED $DATA_GLOBAL_SHARED cd $SERVICE_DATA_CLUSTER_SHARED -mkdir esdatadir fluentd grafana influxdb mongodb +mkdir esdatadir fluentd grafana influxdb mongodb prometheus alertmanager chmod 777 * mmc=`cat /proc/sys/vm/max_map_count` diff --git a/deploy/asapo_services/scripts/alert.yml.tpl b/deploy/asapo_services/scripts/alert.yml.tpl new file mode 100644 index 0000000000000000000000000000000000000000..986dadb1f1517163d87ed9dadf748cdb609f81f5 --- /dev/null +++ b/deploy/asapo_services/scripts/alert.yml.tpl @@ -0,0 +1,58 @@ +groups: +- name: prometheus_alerts + rules: +- name: asapo-nomad-alerts + rules: + - alert: asapo-services + expr: sum(nomad_nomad_job_summary_running{exported_job="asapo-services"}) < 2 or absent(nomad_nomad_job_summary_running{exported_job="asapo-services"}) + for: 1s + labels: + severity: fatal + - alert: asapo-monitoring + expr: sum(nomad_nomad_job_summary_running{exported_job="asapo-monitoring"}) < 2 or absent(nomad_nomad_job_summary_running{exported_job="asapo-monitoring"}) + for: 1s + labels: + severity: fatal + - alert: asapo-mongo + expr: nomad_nomad_job_summary_running{exported_job="asapo-mongo"} < 1 or absent(nomad_nomad_job_summary_running{exported_job="asapo-mongo"}) + for: 1s + labels: + severity: fatal + - alert: asapo-receivers-incomplete + expr: (nomad_nomad_job_summary_running{exported_job="asapo-receivers"} < {{ env "NOMAD_META_n_receivers" }} and sum (nomad_nomad_job_summary_running{exported_job="asapo-receivers"}) > 0) or absent(nomad_nomad_job_summary_running{exported_job="asapo-receivers"}) + for: 30s + labels: + severity: warn + - alert: asapo-receivers-absent + expr: nomad_nomad_job_summary_running{exported_job="asapo-receivers"} < 1 or absent(nomad_nomad_job_summary_running{exported_job="asapo-receivers"}) + for: 1s + labels: + severity: fatal + - alert: asapo-nginx + expr: nomad_nomad_job_summary_running{exported_job="asapo-nginx"} < 1 or absent(nomad_nomad_job_summary_running{exported_job="asapo-nginx"}) + for: 1s + labels: + severity: fatal + - alert: asapo-fluentd + expr: nomad_nomad_job_summary_running{exported_job="asapo-logging", task_group="fluentd"} < 1 or absent(nomad_nomad_job_summary_running{exported_job="asapo-logging", task_group="fluentd"}) + for: 1s + labels: + severity: fatal + +- name: asapo-consul-alerts + rules: + - alert: asapo-discovery + expr: sum (up{job="asapo-discovery"}) < 1 or absent(up{job="asapo-discovery"}) + for: 1s + labels: + severity: fatal + - alert: asapo-brokers-incomplete + expr: (sum (up{job="asapo-broker"}) < {{ env "NOMAD_META_n_brokers" }} and sum (up{job="asapo-broker"}) > 0) or absent(up{job="asapo-broker"}) + for: 30s + labels: + severity: warn + - alert: asapo-brokers-absent + expr: sum (up{job="asapo-broker"}) == 0 or absent(up{job="asapo-broker"}) + for: 1s + labels: + severity: fatal \ No newline at end of file diff --git a/deploy/asapo_services/scripts/asapo-monitoring.nmd.tpl b/deploy/asapo_services/scripts/asapo-monitoring.nmd.tpl new file mode 100644 index 0000000000000000000000000000000000000000..0e26fcaf5cb817978292599d62bc3b3e3dad9550 --- /dev/null +++ b/deploy/asapo_services/scripts/asapo-monitoring.nmd.tpl @@ -0,0 +1,127 @@ +job "asapo-monitoring" { + datacenters = [ + "dc1"] + affinity { + attribute = "$${meta.node_group}" + value = "utl" + weight = 100 + } + + # update { + # max_parallel = 1 + # min_healthy_time = "10s" + # healthy_deadline = "3m" + # auto_revert = false + # } + + group "alerting" { + count = "%{ if asapo_monitor_alert }1%{ else }0%{ endif }" + restart { + attempts = 2 + interval = "30m" + delay = "15s" + mode = "fail" + } + + task "alertmanager" { + driver = "docker" + user = "${asapo_user}" + config { + image = "prom/alertmanager:${alertmanager_version}" + args = [ + "--web.route-prefix=/alertmanager/", + "--config.file=/etc/alertmanager/alertmanager.yml", + "--storage.path=/alertmanager" + ] + volumes = [ + "/${service_dir}/alertmanager:/alertmanager" + ] + } + resources { + memory = "${alertmanager_total_memory_size}" + network { + mbits = 10 + port "alertmanager_ui" { + static = "${alertmanager_port}" + to = 9093 + } + } + } + service { + name = "alertmanager" + port = "alertmanager_ui" + check { + name = "alertmanager_ui port alive" + type = "http" + path = "/alertmanager/-/healthy" + interval = "10s" + timeout = "2s" + } + } + } + } + + + group "monitoring" { + count = "%{ if asapo_monitor }1%{ else }0%{ endif }" + restart { + attempts = 2 + interval = "3m" + delay = "15s" + mode = "delay" + } + + task "prometheus" { + driver = "docker" + user = "${asapo_user}" + config { + image = "prom/prometheus:${prometheus_version}" + args = [ + "--web.external-url=/prometheus/", + "--web.route-prefix=/prometheus/", + "--config.file=/etc/prometheus/prometheus.yml" + ] + volumes = [ + "local/alert.yml:/etc/prometheus/alert.yml", + "local/prometheus.yml:/etc/prometheus/prometheus.yml", + "/${service_dir}/prometheus:/prometheus" + ] + } + template { + source = "${scripts_dir}/alert.yml.tpl" + destination = "local/alert.yml" + change_mode = "restart" + } + template { + source = "${scripts_dir}/prometheus.yml.tpl" + destination = "local/prometheus.yml" + change_mode = "restart" + } + resources { + memory = "${prometheus_total_memory_size}" + network { + mbits = 10 + port "prometheus_ui" { + static = "${prometheus_port}" + to = 9090 + } + } + } + meta { + n_brokers = "${n_brokers}" + n_receivers = "${n_receivers}" + } + service { + name = "prometheus" + port = "prometheus_ui" + check { + name = "prometheus_ui port alive" + type = "http" + path = "/prometheus/-/healthy" + interval = "10s" + timeout = "2s" + } + } + } + } +} \ No newline at end of file diff --git a/deploy/asapo_services/scripts/asapo-nginx.nmd.tpl b/deploy/asapo_services/scripts/asapo-nginx.nmd.tpl index b9ab767cd987122196bf1aa6812f776b324935bd..d22febe4565a30c2946da29bef3c67e69a5a8d5b 100644 --- a/deploy/asapo_services/scripts/asapo-nginx.nmd.tpl +++ b/deploy/asapo_services/scripts/asapo-nginx.nmd.tpl @@ -35,6 +35,8 @@ job "asapo-nginx" { authorizer_port = "${authorizer_port}" discovery_port = "${discovery_port}" consul_dns_port = "${consul_dns_port}" + prometheus_port = "${prometheus_port}" + alertmanager_port = "${alertmanager_port}" } config { @@ -81,8 +83,6 @@ job "asapo-nginx" { destination = "local/nginx.conf" change_mode = "restart" } - - } } } diff --git a/deploy/asapo_services/scripts/asapo.auto.tfvars.in b/deploy/asapo_services/scripts/asapo.auto.tfvars.in index 98ffb7244e1437d9a6fd523667da29ef1fcaa2a9..39fc875d192bdef6fb9ed90931c174705815edb3 100644 --- a/deploy/asapo_services/scripts/asapo.auto.tfvars.in +++ b/deploy/asapo_services/scripts/asapo.auto.tfvars.in @@ -1,7 +1,6 @@ asapo_imagename_suffix="@ASAPO_VERSION_DOCKER_SUFFIX@" asapo_image_tag = "@ASAPO_VERSION@" - nginx_version = "1.14" elasticsearch_version = "7.3.2" kibana_version = "7.3.2" @@ -13,11 +12,15 @@ perf_monitor = false nomad_logs = false force_pull_images = false -job_scripts_dir = "/var/run/asapo" +asapo_monitor = true +asapo_monitor_alert = false +prometheus_version = "v2.30.3" +alertmanager_version = "v0.23.0" -receiver_total_memory_size = "2000" +job_scripts_dir = "/var/run/asapo" -receiver_dataserver_cache_size = "1" #gb +receiver_total_memory_size = 2000 +receiver_dataserver_cache_size = 1 #gb receiver_dataserver_nthreads = 4 receiver_receive_to_disk_threshold = 50 #mb receiver_network_modes = "tcp" @@ -32,6 +35,8 @@ kibana_total_memory_size = 256 mongo_total_memory_size = 256 authorizer_total_memory_size = 256 discovery_total_memory_size = 256 +prometheus_total_memory_size = 256 +alertmanager_total_memory_size = 256 ldap_uri = "ldap://localhost:389" @@ -46,6 +51,8 @@ kibana_port = 5601 discovery_port = 5006 authorizer_port = 5007 consul_dns_port = 8600 +prometheus_port = 9090 +alertmanager_port = 9093 n_receivers = 1 n_brokers = 1 diff --git a/deploy/asapo_services/scripts/nginx.conf.tpl b/deploy/asapo_services/scripts/nginx.conf.tpl index 03bc7377435d913959c003949822b9e7f230d293..5e697955799ad4e58187b9eb7514d7749762b6d5 100644 --- a/deploy/asapo_services/scripts/nginx.conf.tpl +++ b/deploy/asapo_services/scripts/nginx.conf.tpl @@ -35,6 +35,8 @@ http { set $kibana_endpoint kibana.service.asapo; set $grafana_endpoint grafana.service.asapo; set $influxdb_endpoint influxdb.service.asapo; + set $prometheus_endpoint prometheus.service.asapo; + set $alertmanager_endpoint alertmanager.service.asapo; set $elasticsearch_endpoint elasticsearch.service.asapo; location /influxdb/ { @@ -42,6 +44,14 @@ http { proxy_pass http://$influxdb_endpoint:{{ env "NOMAD_META_influxdb_port" }}$uri$is_args$args; } + location /prometheus/ { + proxy_pass http://$prometheus_endpoint:{{ env "NOMAD_META_prometheus_port" }}$uri$is_args$args; + } + + location /alertmanager/ { + proxy_pass http://$alertmanager_endpoint:{{ env "NOMAD_META_alertmanager_port" }}$uri$is_args$args; + } + location /elasticsearch/ { rewrite ^/elasticsearch(/.*) $1 break; proxy_pass http://$elasticsearch_endpoint:{{ env "NOMAD_META_elasticsearch_port" }}$uri$is_args$args; diff --git a/deploy/asapo_services/scripts/prometheus.yml.tpl b/deploy/asapo_services/scripts/prometheus.yml.tpl new file mode 100644 index 0000000000000000000000000000000000000000..89ee5478b17472dbd26adfd01e991ce104e32e4b --- /dev/null +++ b/deploy/asapo_services/scripts/prometheus.yml.tpl @@ -0,0 +1,55 @@ +# my global config +global: + scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. + # scrape_timeout is set to the global default (10s). + +# Alertmanager configuration +alerting: + alertmanagers: + - consul_sd_configs: + - server: '{{ env "NOMAD_IP_prometheus_ui" }}:8500' + services: ['alertmanager'] + path_prefix: "alertmanager/" + +# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. +rule_files: + - "alert.yml" + # - "second_rules.yml" + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: + # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. + - job_name: "prometheus" + static_configs: + - targets: ["localhost:9090"] + # metrics_path defaults to '/metrics' + # scheme defaults to 'http'. + - job_name: "nomad metrics" + consul_sd_configs: + - server: '{{ env "NOMAD_IP_prometheus_ui" }}:8500' + services: + - 'nomad-client' + metrics_path: /v1/metrics + params: + format: ['prometheus'] + - job_name: discovery + consul_sd_configs: + - server: '{{ env "NOMAD_IP_prometheus_ui" }}:8500' + services: + - 'asapo-discovery' + relabel_configs: + - source_labels: [__meta_consul_service] + target_label: job + + # metrics_path: /health + - job_name: dummy + consul_sd_configs: + - server: '{{ env "NOMAD_IP_prometheus_ui" }}:8500' + relabel_configs: + - source_labels: [__meta_consul_tags] + regex: .*,asapo,.* + action: keep + - source_labels: [__meta_consul_service] + target_label: job diff --git a/deploy/asapo_services/scripts/resources.tf b/deploy/asapo_services/scripts/resources.tf index 869b4664f4cde62fbd8495ea5aa42c00ed8b3378..928a5a7620346e3332b33359b43191ee7ee0d497 100644 --- a/deploy/asapo_services/scripts/resources.tf +++ b/deploy/asapo_services/scripts/resources.tf @@ -10,6 +10,13 @@ resource "nomad_job" "asapo-perfmetrics" { jobspec = data.template_file.asapo_perfmetrics.rendered } + +resource "nomad_job" "asapo-monitoring" { + jobspec = data.template_file.asapo_monitoring.rendered + depends_on = [null_resource.asapo-broker,null_resource.asapo-receiver] +} + + resource "nomad_job" "asapo-logging" { jobspec = data.template_file.asapo_logging.rendered depends_on = [null_resource.nginx] diff --git a/deploy/asapo_services/scripts/resources_services.tf b/deploy/asapo_services/scripts/resources_services.tf index e3cff85810efb48af3bc90347c5e20010204df6b..0ad672ea2d3aee11a1f8856e797115b73e75a9a3 100644 --- a/deploy/asapo_services/scripts/resources_services.tf +++ b/deploy/asapo_services/scripts/resources_services.tf @@ -36,6 +36,22 @@ resource "null_resource" "asapo-authorizer" { } + +resource "null_resource" "prometheus" { + provisioner "local-exec" { + command = "asapo-wait-service prometheus ${var.asapo_monitor}" + } + depends_on = [nomad_job.asapo-monitoring] +} + +resource "null_resource" "alertmanager" { + provisioner "local-exec" { + command = "asapo-wait-service alertmanager ${var.asapo_monitor && var.asapo_monitor_alert}" + } + depends_on = [nomad_job.asapo-monitoring] +} + + resource "null_resource" "asapo-discovery" { provisioner "local-exec" { command = "asapo-wait-service asapo-discovery" @@ -79,4 +95,3 @@ resource "null_resource" "kibana" { depends_on = [nomad_job.asapo-logging] } - diff --git a/deploy/asapo_services/scripts/templates.tf b/deploy/asapo_services/scripts/templates.tf index 5815e2672bad509eb76e2b512444e5926ab1b0f0..2c7fa07d091a702fca4f360588469594cc1bc662 100644 --- a/deploy/asapo_services/scripts/templates.tf +++ b/deploy/asapo_services/scripts/templates.tf @@ -9,11 +9,15 @@ data "template_file" "nginx" { elasticsearch_port = "${var.elasticsearch_port}" grafana_port = "${var.grafana_port}" influxdb_port = "${var.influxdb_port}" + prometheus_port = "${var.prometheus_port}" authorizer_port = "${var.authorizer_port}" discovery_port = "${var.discovery_port}" asapo_user = "${var.asapo_user}" consul_dns_port = "${var.consul_dns_port}" + prometheus_port = "${var.prometheus_port}" + alertmanager_port = "${var.alertmanager_port}" } + } data "template_file" "asapo_services" { @@ -99,6 +103,25 @@ data "template_file" "asapo_perfmetrics" { } +data "template_file" "asapo_monitoring" { + template = "${file("${var.job_scripts_dir}/asapo-monitoring.nmd.tpl")}" + vars = { + n_brokers = "${var.n_brokers}" + n_receivers = "${var.n_receivers}" + service_dir = "${var.service_dir}" + scripts_dir = "${var.job_scripts_dir}" + asapo_monitor = "${var.asapo_monitor}" + asapo_monitor_alert = "${var.asapo_monitor_alert}" + prometheus_version = "${var.prometheus_version}" + alertmanager_version = "${var.alertmanager_version}" + alertmanager_port = "${var.alertmanager_port}" + prometheus_port = "${var.prometheus_port}" + prometheus_total_memory_size = "${var.prometheus_total_memory_size}" + alertmanager_total_memory_size = "${var.alertmanager_total_memory_size}" + asapo_user = "${var.asapo_user}" + } +} + data "template_file" "asapo_mongo" { template = "${file("${var.job_scripts_dir}/asapo-mongo.nmd.tpl")}" vars = { diff --git a/deploy/asapo_services/scripts/vars.tf b/deploy/asapo_services/scripts/vars.tf index 41df4f06f5e92f4a85e0d41f81c17d94f716723f..fab7c9a186d6a1073fa871d02ecb2d2bedba39c6 100644 --- a/deploy/asapo_services/scripts/vars.tf +++ b/deploy/asapo_services/scripts/vars.tf @@ -1,6 +1,11 @@ variable "elk_logs" {} + variable "perf_monitor" {} +variable "asapo_monitor" {} + +variable "asapo_monitor_alert" {} + variable "force_pull_images" {} variable "asapo_user" {} @@ -19,6 +24,10 @@ variable "influxdb_version" {} variable "mongo_version" {} +variable "prometheus_version" {} + +variable "alertmanager_version" {} + variable "asapo_imagename_suffix" {} variable "asapo_image_tag" {} @@ -28,6 +37,7 @@ variable "job_scripts_dir" {} variable "service_dir" {} variable "online_dir" {} + variable "offline_dir" {} variable "mongo_dir" {} @@ -42,7 +52,6 @@ variable "receiver_receive_to_disk_threshold" {} variable "receiver_network_modes" {} - variable "grafana_total_memory_size" {} variable "influxdb_total_memory_size" {} @@ -59,12 +68,21 @@ variable "authorizer_total_memory_size" {} variable "discovery_total_memory_size" {} +variable "prometheus_total_memory_size" {} + +variable "alertmanager_total_memory_size" {} + + variable "grafana_port" {} variable "influxdb_port" {} variable "influxdb_rpc_port" {} +variable "prometheus_port" {} + +variable "alertmanager_port" {} + variable "mongo_port" {} variable "fluentd_port" {} diff --git a/deploy/nomad_consul_docker/Dockerfile b/deploy/nomad_consul_docker/Dockerfile index 380b77c5adcd4807f5bbacd937bb813de9bff134..b49d1e5d635c86d1228afb5582425f0d38ffd8cb 100644 --- a/deploy/nomad_consul_docker/Dockerfile +++ b/deploy/nomad_consul_docker/Dockerfile @@ -24,9 +24,9 @@ RUN add-apt-repository \ RUN apt-get update && apt-get install -y docker-ce-cli wget unzip iproute2 vim td-agent-bit -ENV CONSUL_VERSION=1.8.4 -ENV NOMAD_VERSION=0.12.5 -ENV TERRAFORM_VERSION=0.13.3 +ENV CONSUL_VERSION=1.10.3 +ENV NOMAD_VERSION=1.1.6 +ENV TERRAFORM_VERSION=1.0.8 ENV HASHICORP_RELEASES=https://releases.hashicorp.com RUN set -eux && \ diff --git a/deploy/nomad_consul_docker/consul.hcl.tpl b/deploy/nomad_consul_docker/consul.hcl.tpl index 33764c77cbdabe350a4a838a62fcdbfe5211b381..fb2e5bb25598d3dc1cea8025b43d5b0fadc88b43 100644 --- a/deploy/nomad_consul_docker/consul.hcl.tpl +++ b/deploy/nomad_consul_docker/consul.hcl.tpl @@ -28,4 +28,7 @@ $bootstrap_expect_string rejoin_after_leave = true retry_join = $server_adresses - +telemetry = { + disable_compat_1.9 = false + prometheus_retention_time = "24h" +} diff --git a/deploy/nomad_consul_docker/nomad.hcl.tpl b/deploy/nomad_consul_docker/nomad.hcl.tpl index 2a5716ee38a99f7c301b25544705a0f8f14cc7d4..4f7477faa4b1b6796b366be6391fa726638126df 100644 --- a/deploy/nomad_consul_docker/nomad.hcl.tpl +++ b/deploy/nomad_consul_docker/nomad.hcl.tpl @@ -22,6 +22,9 @@ client { "asapo_service" = $is_asapo_lightweight_service_node "ib_address" = "$ib_address" } + template { + disable_file_sandbox = true + } } plugin "docker" { @@ -35,7 +38,9 @@ plugin "docker" { key = "/etc/nomad/key.pem" ca = "/etc/nomad/ca.pem" } - + volumes { + enabled = true + } allow_privileged = true } @@ -48,11 +53,11 @@ plugin "raw_exec" { } telemetry { - publish_allocation_metrics = $use_telemetry - publish_node_metrics = $use_telemetry - statsd_address = "$telegraf_address" - collection_interval = "10s" + collection_interval = "1s" + disable_hostname = true + prometheus_metrics = true + publish_allocation_metrics = true + publish_node_metrics = true } - diff --git a/discovery/src/asapo_discovery/go.mod b/discovery/src/asapo_discovery/go.mod index d1fbc93e8aa6557c91054b95b2925088f5a36359..e1a2c6e037e52ed27d75885243e180bcfb63a3aa 100644 --- a/discovery/src/asapo_discovery/go.mod +++ b/discovery/src/asapo_discovery/go.mod @@ -6,8 +6,8 @@ replace asapo_common v0.0.0 => ../../../common/go/src/asapo_common require ( asapo_common v0.0.0 - github.com/gorilla/mux v1.8.0 github.com/hashicorp/consul/api v1.4.0 + github.com/prometheus/client_golang v1.11.0 github.com/stretchr/testify v1.7.0 k8s.io/apimachinery v0.17.0 k8s.io/client-go v0.17.0 diff --git a/discovery/src/asapo_discovery/go.sum b/discovery/src/asapo_discovery/go.sum index 5b43fcb6be3e5b43431604d61ffe18ac5821eb4a..356d38f48e3b3021d57ce478c6f164b10a2e8fe9 100644 --- a/discovery/src/asapo_discovery/go.sum +++ b/discovery/src/asapo_discovery/go.sum @@ -12,11 +12,22 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -33,11 +44,19 @@ github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I= github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -46,14 +65,26 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -104,12 +135,21 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.8 h1:QiWkFLKq0T7mpzwOTu6BzNDbfTE8OLrYhVKYMLF46Ok= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -128,6 +168,8 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= @@ -148,6 +190,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -157,23 +201,47 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.8.0 h1:nfhvjKcUMhBMVqbKHJlk5RPrrfYr/NMo3692g0dwfWU= github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -181,11 +249,13 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -195,13 +265,16 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ymfAeJIyd0upUIElB+lI= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= @@ -210,21 +283,32 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9 h1:1/DFK4b7JH8DmkqhUk48onnSfrPzImPoVxuomtbT2nk= golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 h1:JWgyZ1qgdTaF3N3oxC+MdTV7qvEEgHo3otj+HB5CM7Q= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -239,6 +323,8 @@ golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -248,6 +334,15 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -259,8 +354,10 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/discovery/src/asapo_discovery/server/get_version.go b/discovery/src/asapo_discovery/server/get_version.go index 3e2abebd5afd815adb2bda77982424acff6c5992..7c1127df3bd049016b2d1be5e4ecb132963a6786 100644 --- a/discovery/src/asapo_discovery/server/get_version.go +++ b/discovery/src/asapo_discovery/server/get_version.go @@ -48,6 +48,7 @@ func routeGetVersion(w http.ResponseWriter, r *http.Request) { } func checkDiscoveryApiVersion(w http.ResponseWriter, r *http.Request) bool { + nReqests.Inc() _, ok := utils.PrecheckApiVersion(w, r, version.GetDiscoveryApiVersion()) return ok } diff --git a/discovery/src/asapo_discovery/server/routes.go b/discovery/src/asapo_discovery/server/routes.go index d918a8adb6db7208fe001f2bb4df96e94ea7bd06..2e0b31972864702c63af499ab9dc7335b13bae25 100644 --- a/discovery/src/asapo_discovery/server/routes.go +++ b/discovery/src/asapo_discovery/server/routes.go @@ -1,10 +1,10 @@ package server import ( - "asapo_discovery/protocols" - "net/http" "asapo_common/logger" "asapo_discovery/common" + "asapo_discovery/protocols" + "net/http" ) func getService(service string) (answer []byte, code int) { diff --git a/discovery/src/asapo_discovery/server/server_nottested.go b/discovery/src/asapo_discovery/server/server_nottested.go index 2c96a7c9cafd0e7e31b8380896d7a7724c05f027..b6e14de06fd681bf15c2accfe466d530f7b0cc08 100644 --- a/discovery/src/asapo_discovery/server/server_nottested.go +++ b/discovery/src/asapo_discovery/server/server_nottested.go @@ -5,15 +5,32 @@ package server import ( log "asapo_common/logger" "asapo_common/utils" - "asapo_common/version" + "asapo_common/version" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" - "strconv" _ "net/http/pprof" + "strconv" +) + +var ( + nReqests = prometheus.NewCounter( + prometheus.CounterOpts{ + Name: "http_requests", + Help: "Number of discovery requests", + }, + ) ) +func init() { + prometheus.MustRegister(nReqests) +} + func Start() { mux := utils.NewRouter(listRoutes) mux.PathPrefix("/debug/pprof/").Handler(http.DefaultServeMux) + mux.PathPrefix("/metrics").Handler(promhttp.Handler()) + log.Info("Starting ASAPO Discovery, version " + version.GetVersion()) log.Info("Listening on port: " + strconv.Itoa(settings.Port)) log.Fatal(http.ListenAndServe(":"+strconv.Itoa(settings.Port), http.HandlerFunc(mux.ServeHTTP)))