diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 88b6e438d..d020d404c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,37 +29,6 @@ jobs: echo "version=$version" >> $GITHUB_OUTPUT echo "Found version $version from lib/vmpooler/version.rb" - - name: Generate Changelog - uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 - with: - args: >- - --future-release ${{ steps.nv.outputs.version }} - env: - CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Validate Changelog - run : | - set -e - if [[ -n $(git status --porcelain) ]]; then - echo "Here is the current git status:" - git status - echo - echo "The following changes were detected:" - git --no-pager diff - echo "Uncommitted PRs found in the changelog. Please submit a release prep PR of changes after running `./update-changelog`" - exit 1 - fi - - - name: Generate Release Notes - uses: docker://githubchangeloggenerator/github-changelog-generator:1.16.2 - with: - args: >- - --since-tag ${{ steps.cv.outputs.result }} - --future-release ${{ steps.nv.outputs.version }} - --output release-notes.md - env: - CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Tag Release uses: ncipollo/release-action@v1 with: diff --git a/Gemfile.lock b/Gemfile.lock index c5fb0fffc..347d03679 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,8 +7,8 @@ PATH deep_merge (~> 1.2) net-ldap (~> 0.16) opentelemetry-exporter-jaeger (= 0.23.0) - opentelemetry-instrumentation-concurrent_ruby (= 0.21.1) - opentelemetry-instrumentation-http_client (= 0.22.2) + opentelemetry-instrumentation-concurrent_ruby (= 0.21.2) + opentelemetry-instrumentation-http_client (= 0.22.3) opentelemetry-instrumentation-redis (= 0.25.3) opentelemetry-instrumentation-sinatra (= 0.23.2) opentelemetry-resource_detectors (= 0.24.2) @@ -26,36 +26,42 @@ PATH GEM remote: https://rubygems.org/ specs: - ast (2.4.2) - base64 (0.1.1) - bindata (2.4.15) - builder (3.2.4) + ast (2.4.3) + base64 (0.1.2) + bindata (2.5.1) + builder (3.3.0) climate_control (1.2.0) coderay (1.1.3) - concurrent-ruby (1.2.2) - connection_pool (2.4.1) + concurrent-ruby (1.3.5) + connection_pool (2.5.3) deep_merge (1.2.2) - diff-lcs (1.5.0) - docile (1.4.0) - faraday (2.7.10) - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) - ffi (1.15.5-java) - google-cloud-env (1.6.0) - faraday (>= 0.17.3, < 3.0) - json (2.6.3) - json (2.6.3-java) - language_server-protocol (3.17.0.3) - method_source (1.0.0) - mock_redis (0.37.0) - mustermann (3.0.0) + diff-lcs (1.6.2) + docile (1.4.1) + faraday (2.13.1) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-net_http (3.4.0) + net-http (>= 0.5.0) + ffi (1.17.2-java) + google-cloud-env (2.2.1) + faraday (>= 1.0, < 3.a) + json (2.12.1) + json (2.12.1-java) + language_server-protocol (3.17.0.5) + logger (1.7.0) + method_source (1.1.0) + mock_redis (0.50.0) + redis (~> 5) + mustermann (3.0.3) ruby2_keywords (~> 0.0.1) - net-ldap (0.18.0) - nio4r (2.5.9) - nio4r (2.5.9-java) - opentelemetry-api (1.2.2) - opentelemetry-common (0.20.0) + net-http (0.6.0) + uri + net-ldap (0.19.0) + nio4r (2.7.4) + nio4r (2.7.4-java) + opentelemetry-api (1.5.0) + opentelemetry-common (0.20.1) opentelemetry-api (~> 1.0) opentelemetry-exporter-jaeger (0.23.0) opentelemetry-api (~> 1.1) @@ -63,19 +69,18 @@ GEM opentelemetry-sdk (~> 1.2) opentelemetry-semantic_conventions thrift - opentelemetry-instrumentation-base (0.22.2) + opentelemetry-instrumentation-base (0.22.3) opentelemetry-api (~> 1.0) opentelemetry-registry (~> 0.1) - opentelemetry-instrumentation-concurrent_ruby (0.21.1) + opentelemetry-instrumentation-concurrent_ruby (0.21.2) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-http_client (0.22.2) + opentelemetry-instrumentation-http_client (0.22.3) opentelemetry-api (~> 1.0) opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-rack (0.23.4) + opentelemetry-instrumentation-rack (0.25.0) opentelemetry-api (~> 1.0) - opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-redis (0.25.3) opentelemetry-api (~> 1.0) @@ -86,63 +91,66 @@ GEM opentelemetry-common (~> 0.20.0) opentelemetry-instrumentation-base (~> 0.22.1) opentelemetry-instrumentation-rack (~> 0.21) - opentelemetry-registry (0.3.0) + opentelemetry-registry (0.4.0) opentelemetry-api (~> 1.1) opentelemetry-resource_detectors (0.24.2) google-cloud-env opentelemetry-sdk (~> 1.0) - opentelemetry-sdk (1.3.0) + opentelemetry-sdk (1.8.0) opentelemetry-api (~> 1.1) opentelemetry-common (~> 0.20) opentelemetry-registry (~> 0.2) opentelemetry-semantic_conventions - opentelemetry-semantic_conventions (1.10.0) + opentelemetry-semantic_conventions (1.11.0) opentelemetry-api (~> 1.0) - parallel (1.23.0) - parser (3.2.2.3) + parallel (1.27.0) + parser (3.3.8.0) ast (~> 2.4.1) racc pickup (0.0.11) - prometheus-client (4.2.1) - pry (0.14.2) + prism (1.4.0) + prometheus-client (4.2.4) + base64 + pry (0.15.2) coderay (~> 1.1) method_source (~> 1.0) - pry (0.14.2-java) + pry (0.15.2-java) coderay (~> 1.1) method_source (~> 1.0) spoon (~> 0.0) - puma (6.4.0) + puma (6.6.0) nio4r (~> 2.0) - puma (6.4.0-java) + puma (6.6.0-java) nio4r (~> 2.0) - racc (1.7.1) - racc (1.7.1-java) - rack (2.2.8) - rack-protection (3.1.0) + racc (1.8.1) + racc (1.8.1-java) + rack (2.2.16) + rack-protection (3.2.0) + base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) - rack-test (2.1.0) + rack-test (2.2.0) rack (>= 1.3) rainbow (3.1.1) - rake (13.0.6) - redis (5.0.7) - redis-client (>= 0.9.0) - redis-client (0.15.0) + rake (13.2.1) + redis (5.4.0) + redis-client (>= 0.22.0) + redis-client (0.24.0) connection_pool - regexp_parser (2.8.1) - rexml (3.2.6) - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) + regexp_parser (2.10.0) + rexml (3.4.1) + rspec (3.13.0) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.3) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.4) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.6) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.4) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-support (3.12.1) + rspec-support (~> 3.13.0) + rspec-support (3.13.3) rubocop (1.56.4) base64 (~> 0.1.1) json (~> 2.3) @@ -155,30 +163,32 @@ GEM rubocop-ast (>= 1.28.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.29.0) - parser (>= 3.2.1.0) + rubocop-ast (1.44.1) + parser (>= 3.3.7.2) + prism (~> 1.4) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.1) simplecov_json_formatter (0.1.4) - sinatra (3.1.0) + sinatra (3.2.0) mustermann (~> 3.0) rack (~> 2.2, >= 2.2.4) - rack-protection (= 3.1.0) + rack-protection (= 3.2.0) tilt (~> 2.0) spicy-proton (2.1.15) bindata (~> 2.3) spoon (0.0.6) ffi statsd-ruby (1.5.0) - thor (1.2.2) - thrift (0.18.1) - tilt (2.2.0) - unicode-display_width (2.5.0) + thor (1.3.2) + thrift (0.21.0) + tilt (2.6.0) + unicode-display_width (2.6.0) + uri (1.0.3) yarjuf (2.0.0) builder rspec (~> 3) diff --git a/bin/vmpooler b/bin/vmpooler index 3483349cd..331dd1e49 100755 --- a/bin/vmpooler +++ b/bin/vmpooler @@ -34,18 +34,29 @@ else exit(2) if torun.empty? end +tracer = OpenTelemetry.tracer_provider.tracer('vmpooler', Vmpooler::VERSION) if torun.include?(:api) - api = Thread.new do - redis = Vmpooler.new_redis(redis_host, redis_port, redis_password) - Vmpooler::API.execute(torun, config, redis, metrics, logger) + tracer.in_span("vmpooler-api") do + parent_ctx = OpenTelemetry::Context.current + api = Thread.new do + OpenTelemetry::Context.with_current(parent_ctx) do + redis = Vmpooler.new_redis(redis_host, redis_port, redis_password) + Vmpooler::API.execute(torun, config, redis, metrics, logger) + end + end + torun_threads << api end - torun_threads << api elsif metrics.respond_to?(:setup_prometheus_metrics) - # Run the cut down API - Prometheus Metrics only. - prometheus_only_api = Thread.new do - Vmpooler::API.execute(torun, config, nil, metrics, logger) + tracer.in_span("vmpooler-prometheus-api") do + parent_ctx = OpenTelemetry::Context.current + # Run the cut down API - Prometheus Metrics only. + prometheus_only_api = Thread.new do + OpenTelemetry::Context.with_current(parent_ctx) do + Vmpooler::API.execute(torun, config, nil, metrics, logger) + end + end + torun_threads << prometheus_only_api end - torun_threads << prometheus_only_api end if torun.include?(:manager) diff --git a/update-gemfile-lock b/update-gemfile-lock index 2ec1df1b4..ec95ac13e 100755 --- a/update-gemfile-lock +++ b/update-gemfile-lock @@ -4,4 +4,4 @@ docker run -it --rm \ -v $(pwd):/app \ jruby:9.4.12.1-jdk11 \ - /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends git make netbase && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' + /bin/bash -c 'apt-get update -qq && apt-get install -y --no-install-recommends git make netbase build-essential && cd /app && gem install bundler && bundle install --jobs 3 && bundle update; echo "LOCK_FILE_UPDATE_EXIT_CODE=$?"' diff --git a/vmpooler.gemspec b/vmpooler.gemspec index 8c346091f..bc5120c3e 100644 --- a/vmpooler.gemspec +++ b/vmpooler.gemspec @@ -21,8 +21,8 @@ Gem::Specification.new do |s| s.add_dependency 'deep_merge', '~> 1.2' s.add_dependency 'net-ldap', '~> 0.16' s.add_dependency 'opentelemetry-exporter-jaeger', '= 0.23.0' - s.add_dependency 'opentelemetry-instrumentation-concurrent_ruby', '= 0.21.1' - s.add_dependency 'opentelemetry-instrumentation-http_client', '= 0.22.2' + s.add_dependency 'opentelemetry-instrumentation-concurrent_ruby', '= 0.21.2' + s.add_dependency 'opentelemetry-instrumentation-http_client', '= 0.22.3' s.add_dependency 'opentelemetry-instrumentation-redis', '= 0.25.3' s.add_dependency 'opentelemetry-instrumentation-sinatra', '= 0.23.2' s.add_dependency 'opentelemetry-resource_detectors', '= 0.24.2'