Skip to content

Commit c4753a5

Browse files
author
Steve Kirkland
committed
Merge branch 'next' into je/plat-15239
2 parents 12f4e60 + 8cf6a87 commit c4753a5

File tree

12 files changed

+165
-126
lines changed

12 files changed

+165
-126
lines changed

.buildkite/pipeline.benchmark.yml

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
agents:
2-
queue: opensource
2+
queue: "opensource"
33

44
steps:
5-
- label: ':android: Build and upload benchmarks'
6-
key: 'benchmark-fixture'
5+
- label: ":android: Build and upload benchmarks"
6+
key: "benchmark-fixture"
77
timeout_in_minutes: 30
88
agents:
9-
queue: macos-15
9+
queue: "macos-15"
1010
env:
11-
JAVA_VERSION: '17'
11+
JAVA_VERSION: "17"
1212
artifact_paths:
1313
- "build/benchmark_fixture_url.txt"
1414
commands:
15-
- make benchmark-fixture
16-
- bundle install
17-
- bundle exec upload-app --farm=bb --app=./build/benchmark-fixture.apk --app-id-file=build/benchmark_fixture_url.txt
15+
- "make benchmark-fixture"
16+
- "bundle install"
17+
- "bundle exec upload-app --farm=bb --app=./build/benchmark-fixture.apk --app-id-file=build/benchmark_fixture_url.txt"
1818

19-
- label: ':bitbar: Benchmarks'
19+
- label: ":bitbar: Benchmarks"
2020
depends_on: "benchmark-fixture"
21-
key: 'benchmark-tests'
21+
key: "benchmark-tests"
2222
timeout_in_minutes: 30
2323
env:
2424
RUN_BENCHMARKS: "1"
@@ -29,8 +29,8 @@ steps:
2929
- "maze_output/failed/**/*"
3030
- "maze_output/metrics.csv"
3131
docker-compose#v4.8.0:
32-
pull: android-maze-runner
33-
run: android-maze-runner
32+
pull: "android-maze-runner"
33+
run: "android-maze-runner"
3434
service-ports: true
3535
command:
3636
- "features/benchmarks"
@@ -42,21 +42,23 @@ steps:
4242
- "--aws-public-ip"
4343
- "--fail-fast"
4444
concurrency: 25
45-
concurrency_group: 'bitbar'
46-
concurrency_method: eager
45+
concurrency_group: "bitbar"
46+
concurrency_method: "eager"
4747
retry:
4848
automatic:
4949
- exit_status: 103 # Appium session failed
5050
limit: 2
51+
- exit_status: -1 # Agent was lost
52+
limit: 2
5153

52-
- label: 'Send results to Datadog'
54+
- label: "Send results to Datadog"
5355
depends_on: "benchmark-tests"
5456
timeout_in_minutes: 10
5557
plugins:
5658
artifacts#v1.9.0:
5759
download: "maze_output/metrics.csv"
5860
agents:
59-
queue: macos-15
61+
queue: "macos-15"
6062
commands:
61-
- bundle install
62-
- bundle exec benchmarks-to-datadog --csv-file maze_output/metrics.csv
63+
- "bundle install"
64+
- "bundle exec benchmarks-to-datadog --csv-file maze_output/metrics.csv"

.buildkite/pipeline.yml

Lines changed: 67 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,79 @@
11
agents:
2-
queue: opensource
2+
queue: "opensource"
33

44
steps:
55

6-
- label: ':android: Coding standards checks'
6+
- label: ":android: Coding standards checks"
77
timeout_in_minutes: 20
88
agents:
9-
queue: macos-15
9+
queue: "macos-15"
1010
env:
11-
JAVA_VERSION: '17'
12-
command: './gradlew --continue license detekt lint ktlintCheck'
11+
JAVA_VERSION: "17"
12+
command: "./gradlew --continue license detekt lint ktlintCheck"
1313

14-
- label: ':android: Binary compatibility checks'
14+
- label: ":android: Binary compatibility checks"
1515
timeout_in_minutes: 20
1616
agents:
17-
queue: macos-15
17+
queue: "macos-15"
1818
env:
19-
JAVA_VERSION: '17'
20-
command: './gradlew apiCheck'
19+
JAVA_VERSION: "17"
20+
command: "./gradlew apiCheck"
2121

22-
- label: ':android: JVM tests'
22+
- label: ":android: JVM tests"
2323
timeout_in_minutes: 10
2424
agents:
25-
queue: macos-15
25+
queue: "macos-15"
2626
env:
27-
JAVA_VERSION: '17'
28-
command: './gradlew test'
27+
JAVA_VERSION: "17"
28+
command: "./gradlew test"
2929
plugins:
3030
artifacts#v1.9.0:
3131
upload: "bugsnag-android-performance/build/reports/tests/"
32-
compressed: bugsnag-android-performance-test-reports.tgz
32+
compressed: "bugsnag-android-performance-test-reports.tgz"
3333

34-
- label: ':android: Lint test scenarios'
34+
- label: ":android: Lint test scenarios"
3535
timeout_in_minutes: 10
3636
agents:
37-
queue: macos-15
37+
queue: "macos-15"
3838
env:
39-
JAVA_VERSION: '17'
39+
JAVA_VERSION: "17"
4040
commands:
41-
- cd features/fixtures/mazeracer
42-
- ./gradlew ktlintCheck detekt
41+
- "cd features/fixtures/mazeracer"
42+
- "./gradlew ktlintCheck detekt"
4343

44-
- label: ':android: Android size reporting'
44+
- label: ":android: Android size reporting"
4545
timeout_in_minutes: 10
4646
agents:
47-
queue: macos-15
47+
queue: "macos-15"
4848
env:
49-
JAVA_VERSION: '17'
50-
command: scripts/run-sizer.sh
49+
JAVA_VERSION: "17"
50+
command: "scripts/run-sizer.sh"
5151

52-
- label: ':android: Build Example App'
52+
- label: ":android: Build Example App"
5353
timeout_in_minutes: 10
5454
agents:
55-
queue: macos-15
56-
command: 'make example-app'
55+
queue: "macos-15"
56+
command: "make example-app"
5757
env:
58-
JAVA_VERSION: 17
58+
JAVA_VERSION: "17"
5959

60-
- label: ':android: Build and upload test fixture'
61-
key: 'fixture'
60+
- label: ":android: Build and upload test fixture"
61+
key: "fixture"
6262
timeout_in_minutes: 30
6363
agents:
64-
queue: macos-15
64+
queue: "macos-15"
6565
env:
66-
JAVA_VERSION: '17'
66+
JAVA_VERSION: "17"
6767
artifact_paths:
6868
- "build/fixture_url.txt"
6969
- "build/fixture_bs_url.txt"
7070
commands:
71-
- make test-fixture
72-
- bundle install
73-
- bundle exec upload-app --farm=bb --app=./build/test-fixture.apk --app-id-file=build/fixture_url.txt
74-
- bundle exec upload-app --farm=bs --app=./build/test-fixture.apk --app-id-file=build/fixture_bs_url.txt
71+
- "make test-fixture"
72+
- "bundle install"
73+
- "bundle exec upload-app --farm=bb --app=./build/test-fixture.apk --app-id-file=build/fixture_url.txt"
74+
- "bundle exec upload-app --farm=bs --app=./build/test-fixture.apk --app-id-file=build/fixture_bs_url.txt"
7575

76-
- label: ':bitbar: {{matrix}} tests'
76+
- label: ":bitbar: {{matrix}} tests"
7777
depends_on: "fixture"
7878
timeout_in_minutes: 60
7979
matrix:
@@ -92,8 +92,8 @@ steps:
9292
- "maze_output/failed/**/*"
9393
- "maze_output/maze_output.zip"
9494
docker-compose#v4.8.0:
95-
pull: android-maze-runner
96-
run: android-maze-runner
95+
pull: "android-maze-runner"
96+
run: "android-maze-runner"
9797
service-ports: true
9898
command:
9999
- "features/full_tests"
@@ -111,61 +111,61 @@ steps:
111111
format: "junit"
112112
branch: "^main|next$$"
113113
concurrency: 25
114-
concurrency_group: 'bitbar'
115-
concurrency_method: eager
114+
concurrency_group: "bitbar"
115+
concurrency_method: "eager"
116116
retry:
117117
automatic:
118118
- exit_status: -1 # Agent was lost
119119
limit: 2
120120
- exit_status: 103 # Appium session failed
121121
limit: 2
122122

123-
# If this is the 'main' branch activate a manual publishing step
123+
# If this is the "main" branch activate a manual publishing step
124124

125-
- block: 'Trigger package publish'
125+
- block: "Trigger package publish"
126126
if: build.branch == "main"
127-
key: trigger-publish
128-
blocked_state: passed
127+
key: "trigger-publish"
128+
blocked_state: "passed"
129129

130-
- label: ':docker: Build Android base image'
130+
- label: ":docker: Build Android base image"
131131
if: build.branch == "main"
132-
key: 'android-common'
132+
key: "android-common"
133133
timeout_in_minutes: 30
134-
depends_on: 'trigger-publish'
134+
depends_on: "trigger-publish"
135135
plugins:
136136
- docker-compose#v4.7.0:
137137
build:
138-
- android-common
139-
image-repository: 855461928731.dkr.ecr.us-west-1.amazonaws.com/android
138+
- "android-common"
139+
image-repository: "855461928731.dkr.ecr.us-west-1.amazonaws.com/android"
140140
cache-from:
141-
- android-common:855461928731.dkr.ecr.us-west-1.amazonaws.com/android:performance-release
141+
- "android-common:855461928731.dkr.ecr.us-west-1.amazonaws.com/android:performance-release"
142142
push:
143-
- android-common:855461928731.dkr.ecr.us-west-1.amazonaws.com/android:performance-release
143+
- "android-common:855461928731.dkr.ecr.us-west-1.amazonaws.com/android:performance-release"
144144

145-
- label: 'Publish :rocket:'
145+
- label: "Publish :rocket:"
146146
if: build.branch == "main"
147-
depends_on: 'android-common'
147+
depends_on: "android-common"
148148
timeout_in_minutes: 30
149149
env:
150-
BUILDKITE_PLUGIN_S3_SECRETS_BUCKET_PREFIX: bugsnag-android-publish
150+
BUILDKITE_PLUGIN_S3_SECRETS_BUCKET_PREFIX: "bugsnag-android-publish"
151151
RELEASING: "true"
152152
plugins:
153153
artifacts#v1.9.0:
154154
upload:
155-
- bugsnag-android-performance/build/outputs/aar/bugsnag-android-performance-release.aar
156-
- bugsnag-android-performance-api/build/outputs/aar/bugsnag-android-performance-api-release.aar
157-
- bugsnag-android-performance-appcompat/build/outputs/aar/bugsnag-android-performance-appcompat-release.aar
158-
- bugsnag-android-performance-compose/build/outputs/aar/bugsnag-android-performance-compose-release.aar
159-
- bugsnag-android-performance-coroutines/build/outputs/aar/bugsnag-android-performance-coroutines-release.aar
160-
- bugsnag-android-performance-impl/build/outputs/aar/bugsnag-android-performance-impl-release.aar
161-
- bugsnag-android-performance-okhttp/build/outputs/aar/bugsnag-android-performance-okhttp-release.aar
162-
- bugsnag-plugin-android-performance-named-spans/build/outputs/aar/bugsnag-plugin-android-performance-named-spans-release.aar
155+
- "bugsnag-android-performance/build/outputs/aar/bugsnag-android-performance-release.aar"
156+
- "bugsnag-android-performance-api/build/outputs/aar/bugsnag-android-performance-api-release.aar"
157+
- "bugsnag-android-performance-appcompat/build/outputs/aar/bugsnag-android-performance-appcompat-release.aar"
158+
- "bugsnag-android-performance-compose/build/outputs/aar/bugsnag-android-performance-compose-release.aar"
159+
- "bugsnag-android-performance-coroutines/build/outputs/aar/bugsnag-android-performance-coroutines-release.aar"
160+
- "bugsnag-android-performance-impl/build/outputs/aar/bugsnag-android-performance-impl-release.aar"
161+
- "bugsnag-android-performance-okhttp/build/outputs/aar/bugsnag-android-performance-okhttp-release.aar"
162+
- "bugsnag-plugin-android-performance-named-spans/build/outputs/aar/bugsnag-plugin-android-performance-named-spans-release.aar"
163163
docker-compose#v4.7.0:
164-
no-cache: true
165-
run: android-publisher
164+
no-cache: "true"
165+
run: "android-publisher"
166166

167-
- label: 'Conditionally include other pipelines'
167+
- label: "Conditionally include other pipelines"
168168
agents:
169-
queue: macos
170-
command: sh -c .buildkite/pipeline_trigger.sh
169+
queue: "macos"
170+
command: "sh -c .buildkite/pipeline_trigger.sh"
171171
timeout_in_minutes: 10

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
* System metrics are now reported for first-class `ViewLoad` spans
66
[#475](https://github.com/bugsnag/bugsnag-android-performance/pull/475)
77

8+
### Bug fixes
9+
10+
* Fixed an issue where `onSpanEnd` callbacks were not invoked for sampled spans
11+
[#486](https://github.com/bugsnag/bugsnag-android-performance/pull/486)
12+
813
## 2.1.1 (2025-11-20)
914

1015
### Bug fixes

bugsnag-android-performance-impl/src/main/kotlin/com/bugsnag/android/performance/internal/processing/Tracer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public class Tracer(
5555
override fun onEnd(span: Span) {
5656
if (span !is SpanImpl) return
5757

58-
if (sampler.shouldKeepSpan(span) && callbacksKeepSpan(span)) {
58+
if (callbacksKeepSpan(span) && sampler.shouldKeepSpan(span)) {
5959
span.isSealed = true
6060
val batchSize = addToBatch(span)
6161
if (batchSize >= InternalDebug.spanBatchSizeSendTriggerPoint) {

features/full_tests/correlation.feature

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ Scenario: Errors notified within a span include the correlation data
66
And I wait to receive an error
77

88
* a span field "kind" equals 1
9-
* a span field "startTimeUnixNano" matches the regex "^[0-9]+$"
10-
* a span field "endTimeUnixNano" matches the regex "^[0-9]+$"
119

1210
# Check the error correlation with the span
1311
* the event "correlation.traceId" is not null

features/full_tests/device_metrics.feature

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@ Feature: Device Metrics
22

33
Scenario: CPU & Memory Test
44
When I run "DeviceMetricsScenario" configured as "all"
5-
* I wait to receive a trace
5+
* I wait to receive a span named "FirstClass"
6+
* I wait to receive a span named "No Metrics"
7+
* I wait to receive a span named "Not FirstClass"
8+
* I wait to receive a span named "CPU Metrics Only"
9+
* I wait to receive a span named "Memory Metrics Only"
610

711
# Check CPU Metrics on first class spans
812
* the "FirstClass" span has double attribute named "bugsnag.system.cpu_mean_total"
@@ -101,7 +105,11 @@ Feature: Device Metrics
101105

102106
Scenario: Configured for CPU Metrics only
103107
When I run "DeviceMetricsScenario" configured as "cpu"
104-
* I wait to receive a trace
108+
* I wait to receive a span named "FirstClass"
109+
* I wait to receive a span named "No Metrics"
110+
* I wait to receive a span named "Not FirstClass"
111+
* I wait to receive a span named "CPU Metrics Only"
112+
* I wait to receive a span named "Memory Metrics Only"
105113

106114
# Check CPU Metrics on first class spans
107115
* the "FirstClass" span has double attribute named "bugsnag.system.cpu_mean_total"
@@ -198,7 +206,11 @@ Feature: Device Metrics
198206

199207
Scenario: Configured for Memory Metrics only
200208
When I run "DeviceMetricsScenario" configured as "memory"
201-
* I wait to receive a trace
209+
* I wait to receive a span named "FirstClass"
210+
* I wait to receive a span named "No Metrics"
211+
* I wait to receive a span named "Not FirstClass"
212+
* I wait to receive a span named "CPU Metrics Only"
213+
* I wait to receive a span named "Memory Metrics Only"
202214

203215
# Check there are no CPU Metrics on first class spans
204216
* the "FirstClass" span has no "bugsnag.system.cpu_mean_total" attribute

features/full_tests/frame_metrics.feature

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ Feature: Rendering / Frame Metrics
22

33
Scenario: Slow & Frozen Frames are reported
44
When I run "FrameMetricsScenario"
5-
* I wait to receive a trace
6-
7-
* a span name equals "Slow Animation"
8-
* a span name equals "FrozenFrame"
5+
* I wait to receive a span named "Slow Animation"
6+
* I wait to receive a span named "FrozenFrame"
97

108
# The FrozenFrame span should be a child of Slow Animation
119
* a span named "FrozenFrame" has a parent named "Slow Animation"
@@ -16,9 +14,7 @@ Scenario: Slow & Frozen Frames are reported
1614

1715
Scenario: Rending Instrumentation can be turned off
1816
When I run "FrameMetricsScenario" configured as "disableInstrumentation"
19-
* I wait to receive a trace
20-
21-
* a span name equals "Slow Animation"
17+
* I wait to receive a span named "Slow Animation"
2218

2319
* the "Slow Animation" span has no "bugsnag.rendering.slow_frames" attribute
2420
* the "Slow Animation" span has no "bugsnag.rendering.frozen_frames" attribute

0 commit comments

Comments
 (0)