Skip to content

Commit 8df3325

Browse files
authored
Use semantic conventions in click instrumentation (#1008)
* use semantic conventions in click instrumentation * fix test
1 parent b74c38d commit 8df3325

4 files changed

Lines changed: 29 additions & 37 deletions

File tree

instrumentation/view-click/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies {
2020
api(project(":instrumentation:android-instrumentation"))
2121

2222
implementation(libs.opentelemetry.instrumentation.apiSemconv)
23+
implementation(libs.opentelemetry.semconv.incubating)
2324
implementation(libs.opentelemetry.api.incubator)
2425

2526
testImplementation(project(":test-common"))

instrumentation/view-click/src/main/kotlin/io/opentelemetry/android/instrumentation/view/click/ViewClickEventGenerator.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import android.view.ViewGroup
1111
import android.view.Window
1212
import io.opentelemetry.android.instrumentation.view.click.internal.APP_SCREEN_CLICK_EVENT_NAME
1313
import io.opentelemetry.android.instrumentation.view.click.internal.VIEW_CLICK_EVENT_NAME
14-
import io.opentelemetry.android.instrumentation.view.click.internal.viewIdAttr
15-
import io.opentelemetry.android.instrumentation.view.click.internal.viewNameAttr
16-
import io.opentelemetry.android.instrumentation.view.click.internal.xCoordinateAttr
17-
import io.opentelemetry.android.instrumentation.view.click.internal.yCoordinateAttr
1814
import io.opentelemetry.api.common.Attributes
1915
import io.opentelemetry.api.incubator.logs.ExtendedLogRecordBuilder
2016
import io.opentelemetry.api.incubator.logs.ExtendedLogger
17+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_SCREEN_COORDINATE_X
18+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_SCREEN_COORDINATE_Y
19+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_WIDGET_ID
20+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_WIDGET_NAME
2121
import java.lang.ref.WeakReference
2222
import java.util.LinkedList
2323

@@ -38,8 +38,8 @@ class ViewClickEventGenerator(
3838
windowRef?.get()?.let { window ->
3939
if (motionEvent != null && motionEvent.actionMasked == MotionEvent.ACTION_UP) {
4040
createEvent(APP_SCREEN_CLICK_EVENT_NAME)
41-
.setAttribute(yCoordinateAttr, motionEvent.y.toLong())
42-
.setAttribute(xCoordinateAttr, motionEvent.x.toLong())
41+
.setAttribute(APP_SCREEN_COORDINATE_Y, motionEvent.y.toLong())
42+
.setAttribute(APP_SCREEN_COORDINATE_X, motionEvent.x.toLong())
4343
.emit()
4444

4545
findTargetForTap(window.decorView, motionEvent.x, motionEvent.y)?.let { view ->
@@ -67,11 +67,11 @@ class ViewClickEventGenerator(
6767

6868
private fun createViewAttributes(view: View): Attributes {
6969
val builder = Attributes.builder()
70-
builder.put(viewNameAttr, viewToName(view))
71-
builder.put(viewIdAttr, view.id.toLong())
70+
builder.put(APP_WIDGET_NAME, viewToName(view))
71+
builder.put(APP_WIDGET_ID, view.id.toString())
7272

73-
builder.put(xCoordinateAttr, view.x.toLong())
74-
builder.put(yCoordinateAttr, view.y.toLong())
73+
builder.put(APP_SCREEN_COORDINATE_X, view.x.toLong())
74+
builder.put(APP_SCREEN_COORDINATE_Y, view.y.toLong())
7575
return builder.build()
7676
}
7777

instrumentation/view-click/src/main/kotlin/io/opentelemetry/android/instrumentation/view/click/internal/ViewUtils.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,5 @@
55

66
package io.opentelemetry.android.instrumentation.view.click.internal
77

8-
import io.opentelemetry.api.common.AttributeKey
9-
import io.opentelemetry.api.common.AttributeKey.longKey
10-
import io.opentelemetry.api.common.AttributeKey.stringKey
11-
128
const val APP_SCREEN_CLICK_EVENT_NAME = "app.screen.click"
139
const val VIEW_CLICK_EVENT_NAME = "event.app.widget.click"
14-
val viewNameAttr: AttributeKey<String> = stringKey("app.widget.name")
15-
16-
val xCoordinateAttr: AttributeKey<Long> = longKey("app.screen.coordinate.x")
17-
val yCoordinateAttr: AttributeKey<Long> = longKey("app.screen.coordinate.y")
18-
val viewIdAttr: AttributeKey<Long> = longKey("app.widget.id")

instrumentation/view-click/src/test/kotlin/io/opentelemetry/android/instrumentation/view/click/ViewClickInstrumentationTest.kt

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ import io.mockk.verify
2424
import io.opentelemetry.android.instrumentation.InstallationContext
2525
import io.opentelemetry.android.instrumentation.view.click.internal.APP_SCREEN_CLICK_EVENT_NAME
2626
import io.opentelemetry.android.instrumentation.view.click.internal.VIEW_CLICK_EVENT_NAME
27-
import io.opentelemetry.android.instrumentation.view.click.internal.viewIdAttr
28-
import io.opentelemetry.android.instrumentation.view.click.internal.viewNameAttr
29-
import io.opentelemetry.android.instrumentation.view.click.internal.xCoordinateAttr
30-
import io.opentelemetry.android.instrumentation.view.click.internal.yCoordinateAttr
3127
import io.opentelemetry.android.session.SessionProvider
3228
import io.opentelemetry.sdk.logs.data.internal.ExtendedLogRecordData
3329
import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat
3430
import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo
3531
import io.opentelemetry.sdk.testing.junit4.OpenTelemetryRule
32+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_SCREEN_COORDINATE_X
33+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_SCREEN_COORDINATE_Y
34+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_WIDGET_ID
35+
import io.opentelemetry.semconv.incubating.AppIncubatingAttributes.APP_WIDGET_NAME
3636
import org.junit.Before
3737
import org.junit.Test
3838
import org.junit.jupiter.api.extension.ExtendWith
@@ -109,18 +109,18 @@ class ViewClickInstrumentationTest {
109109
assertThat(event)
110110
.hasEventName(APP_SCREEN_CLICK_EVENT_NAME)
111111
.hasAttributesSatisfyingExactly(
112-
equalTo(xCoordinateAttr, motionEvent.x.toLong()),
113-
equalTo(yCoordinateAttr, motionEvent.y.toLong()),
112+
equalTo(APP_SCREEN_COORDINATE_X, motionEvent.x.toLong()),
113+
equalTo(APP_SCREEN_COORDINATE_Y, motionEvent.y.toLong()),
114114
)
115115

116116
event = events[1] as ExtendedLogRecordData
117117
assertThat(event)
118118
.hasEventName(VIEW_CLICK_EVENT_NAME)
119119
.hasAttributesSatisfyingExactly(
120-
equalTo(xCoordinateAttr, mockView.x.toLong()),
121-
equalTo(yCoordinateAttr, mockView.y.toLong()),
122-
equalTo(viewIdAttr, mockView.id),
123-
equalTo(viewNameAttr, "10012"),
120+
equalTo(APP_SCREEN_COORDINATE_X, mockView.x.toLong()),
121+
equalTo(APP_SCREEN_COORDINATE_Y, mockView.y.toLong()),
122+
equalTo(APP_WIDGET_ID, mockView.id.toString()),
123+
equalTo(APP_WIDGET_NAME, "10012"),
124124
)
125125
}
126126

@@ -176,18 +176,18 @@ class ViewClickInstrumentationTest {
176176
assertThat(event)
177177
.hasEventName(APP_SCREEN_CLICK_EVENT_NAME)
178178
.hasAttributesSatisfyingExactly(
179-
equalTo(xCoordinateAttr, motionEvent.x.toLong()),
180-
equalTo(yCoordinateAttr, motionEvent.y.toLong()),
179+
equalTo(APP_SCREEN_COORDINATE_X, motionEvent.x.toLong()),
180+
equalTo(APP_SCREEN_COORDINATE_Y, motionEvent.y.toLong()),
181181
)
182182

183183
event = events[1] as ExtendedLogRecordData
184184
assertThat(event)
185185
.hasEventName(VIEW_CLICK_EVENT_NAME)
186186
.hasAttributesSatisfyingExactly(
187-
equalTo(xCoordinateAttr, mockView.x.toLong()),
188-
equalTo(yCoordinateAttr, mockView.y.toLong()),
189-
equalTo(viewIdAttr, mockView.id),
190-
equalTo(viewNameAttr, "10012"),
187+
equalTo(APP_SCREEN_COORDINATE_X, mockView.x.toLong()),
188+
equalTo(APP_SCREEN_COORDINATE_Y, mockView.y.toLong()),
189+
equalTo(APP_WIDGET_ID, mockView.id.toString()),
190+
equalTo(APP_WIDGET_NAME, "10012"),
191191
)
192192
}
193193

@@ -243,8 +243,8 @@ class ViewClickInstrumentationTest {
243243
assertThat(event)
244244
.hasEventName(APP_SCREEN_CLICK_EVENT_NAME)
245245
.hasAttributesSatisfyingExactly(
246-
equalTo(xCoordinateAttr, motionEvent.x.toLong()),
247-
equalTo(yCoordinateAttr, motionEvent.y.toLong()),
246+
equalTo(APP_SCREEN_COORDINATE_X, motionEvent.x.toLong()),
247+
equalTo(APP_SCREEN_COORDINATE_Y, motionEvent.y.toLong()),
248248
)
249249
}
250250

0 commit comments

Comments
 (0)