Releases: open-telemetry/opentelemetry-java-instrumentation
Version 2.4.0
This release targets the OpenTelemetry SDK 1.38.0.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
🌟 New javaagent instrumentation
📈 Enhancements
- Instrument ConnectionSource in Akka/Pekko HTTP Servers (#11103)
- Use constant span name when using Spring AMQP AnonymousQueues (#11141)
- Add support for
RestClient
in Spring starter (#11038) - Add support for WebFlux server in Spring starter (#11185)
- Add async operation end strategy for Kotlin coroutines flow (#11168)
- Add automatic JDBC instrumentation to the Spring starter (#11258)
- Add
StructuredTaskScope
instrumentation (#11202) - Allow reading OTel context from reactor ContextView (#11235)
- Add spring starter r2dbc support (#11221)
- Enable instrumentation of Spring EJB clients (#11104)
- Support
otel.instrumentation.kafka.experimental-span-attributes
in Spring starter (#11263) - Remove incubating semconv dependency from library instrumentation (#11324)
- Add extension functions for Ktor plugins (#10963)
- Add dedicated flag for R2DBC statement sanitizer (#11384)
- Allow library instrumentations to override span name (#11355)
- Don't sanitize PostgreSQL parameter markers (#11388)
- Make statement sanitizer configurable for Spring Boot (#11350)
🛠️ Bug fixes
- Fix GraphQL instrumentation to work with latest version (#11142)
- Fix jmx-metrics on WildFly (#11151)
- End gRPC server span in onComplete instead of close (#11170)
- Fix a bug in undertow instrumentation related to HTTP/2 (#11361)
- Armeria http client reports wrong protocol version (#11334)
- Use daemon thread for scheduling in jmx-metrics BeanFinder (#11337)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@123liuziming
@aaron-ai
@AlchemyDing
@ArtyomGabeev
@aschugunov
@breedx-splk
@cxjava
@dengliming
@ehsannas
@flamiau04
@hannahchan
@jaydeluca
@jeanbisutti
@jmadureira
@laurit
@LikeTheSalad
@lizongwu
@marychatte
@ofelbaum
@PeterF778
@philsttr
@steverao
@swar8080
@SylvainJuge
@trask
@v1v
@zackman0010
@zeitlinger
Version 1.33.2
Version 2.3.0
This release targets the OpenTelemetry SDK 1.37.0.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
📈 Enhancements
- Handle async requests in spring mvc library instrumentation (#10868)
- Support statement sanitizer enabled flag in lettuce 5.1 instrumentation (#10922)
- Remove AWS Active Tracing span linking (#10930)
- Make spring boot honor the standard environment variables for maps (#11000)
- Pulsar: use span links when receive telemetry is enabled (#10650)
- Rename
messaging.kafka.destination.partition
tomessaging.destination.partition.id
(#11086) - Support
service.instance.id
in spring starter (#11071) - Add library instrumentation for RestTemplateBuilder (#11054)
- Add cloud resource providers in spring starter (#11014)
🛠️ Bug fixes
- Fix disabling virtual thread context propagation (#10881)
- Fix virtual thread instrumentation for jdk 21 ea versions (#10887)
- Fix spring kafka interceptor wrappers not delegating some methods (#10935)
- AWS Lambda Runtime legacy internal handlers need to be ignored from being instrumented and so traced … (#10942)
- Metro: ignore UnsupportedOperationException when updating span name (#10996)
- Fix jedis plugin for 2.7.2 (#10982)
- Fix idle in druid instrumentation (#11079)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@123liuziming
@AlchemyDing
@breedx-splk
@cleverchuk
@damienburke
@huange7
@itsmykairos
@jack-berg
@jaydeluca
@jeanbisutti
@johnbley
@JonasKunz
@laurit
@Moscagus
@phillipdriver
@rapphil
@robberphex
@serkan-ozal
@srinivas-bode
@steverao
@SylvainJuge
@Synthenses
@trask
@tylerbenson
@wang007
@xiangtianyu
@zeitlinger
Version 1.33.1
Version 2.2.0
This release targets the OpenTelemetry SDK 1.36.0.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
Migration notes
- Remove deprecated spring properties (#10454)
🌟 New javaagent instrumentation
- Add cloud resource detectors in javaagent, but keep them disabled by default (#10754)
- Add support for XXL-JOB (#10421)
📈 Enhancements
- Don't fill network peer for cassandra SniEndPoint (#10573)
- Spring boot starter: add service.version detection, improve service.name detection (#10457)
- Always create a JMS consumer span (#10604)
- Ability to disable the automatic Logback appender addition (#10629)
- Allow excluding all methods of a class (#10753)
- Preserve attribute type for logback key value pairs (#10781)
- Add instrumentation for graphql 20 that does not use deprecated methods (#10779)
- Capture http.route for pekko-http (#10799)
- Normalize SQL IN(?, ?, ...) statements to "in(?)" to reduce cardinality of db.statement attribute (#10564)
- Capture
db.operation
for CREATE/DROP/ALTER SQL statement (#10020) - Ignore AWS Lambda Runtime internal handlers (#10736)
- Spring use SDK autoconfig (#10453)
- Add manifest resource detector (#10621)
- Add instrumentation for jetty 12 (#10575)
- add host.id resource provider (#10627)
🛠️ Bug fixes
- Don't fail spring application startup if sdk is disabled (#10602)
- Fix shading aws propagator (#10669)
- Disable http and rpc metrics when advice can not be applied (#10671)
- Fix native tests (#10685)
- Fix tomcat instrumentation when user includes wrong servlet api (#10757)
- Override xray trace header instead of appending (#10766)
- Fix spring boot starter failing without logback (#10802)
- Fix spring kafka context leak when batch listener is retried (#10741)
- Fix the logic to get container.id resource attribute (#10737)
- Configure kafka metrics reporter as class (#10855)
- Disable context propagation when virtual thread is switched to the carrier thread (#10854)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@bbakerman
@bjrara
@breedx-splk
@cleverchuk
@crossoverJie
@dalbani
@dmarkwat
@freshchen
@gaeljw
@gdw2
@hatharom
@heyams
@jaydeluca
@jeanbisutti
@jkwatson-verta
@JonasKunz
@laurit
@liurui-1
@Moscagus
@paragniist
@pmitura-lucid
@qixiaogang
@samwright
@serkan-ozal
@steverao
@swar8080
@theletterf
@tkramarczyk-vgw
@trask
@tylerbenson
@wangzlei
@zeitlinger
Version 1.33.0
This release targets the OpenTelemetry SDK 1.35.0.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
Migration notes
- The deprecated Jaeger exporter has been removed (#10524)
📈 Enhancements
Version 2.1.0
This release targets the OpenTelemetry SDK 1.35.0.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
Migration notes
- Deprecated config properties have been removed in favor of the new names:
otel.instrumentation.kafka.client-propagation.enabled
->otel.instrumentation.kafka.producer-propagation.enabled
otel.instrumentation.netty.always-create-connect-span
->otel.instrumentation.netty.connection-telemetry.enabled
otel.instrumentation.http.capture-headers.client.request
->otel.instrumentation.http.client.capture-request-headers
otel.instrumentation.http.capture-headers.client.response
->otel.instrumentation.http.client.capture-response-headers
otel.instrumentation.http.capture-headers.server.request
->otel.instrumentation.http.server.capture-request-headers
otel.instrumentation.http.capture-headers.server.response
->otel.instrumentation.http.server.capture-response-headers
otel.instrumentation.http.client.emit-experimental-metrics
->otel.instrumentation.http.client.emit-experimental-telemetry
otel.instrumentation.http.server.emit-experimental-metrics
->otel.instrumentation.http.server.emit-experimental-telemetry
(#10349)
- The deprecated Jaeger exporter has been removed (#10241)
- Actuator instrumentation has been disabled by default. You can enable using
OTEL_INSTRUMENTATION_SPRING_BOOT_ACTUATOR_AUTOCONFIGURE_ENABLED=true
or-Dotel.instrumentation.spring-boot-actuator-autoconfigure.enabled=true
. (#10394) - Spring starter: removed support for the deprecated @io.opentelemetry.extension.annotations.WithSpan annotation. Use @io.opentelemetry.instrumentation.annotations.WithSpan annotation instead. (#10530)
🌟 New javaagent instrumentation
🌟 New library instrumentation
- Apache HttpClient 5 instrumentation (#10100)
📈 Enhancements
- Spring starter: add distro version resource attribute (#10276)
- Add context propagation for rector schedulers (#10311)
- Spring starter: automatic addition of the OTel Logback appender (#10306)
- Spring starter: add resource detectors (#10277)
- Allow closing the observables for System and Process metrics gathered by OSHI (#10364)
- Spring starter: Allow to configure the OTel Logback appender from system properties (#10355)
- Spring starter: re-use sdk logic for configuring otlp exporters (#10292)
- All available spring starter properties (including the new properties) can be found
here - You can also use auto-completion in your IDE to see the available properties in
application.properties
orapplication.yml
- All available spring starter properties (including the new properties) can be found
- Spring starter: add SystemOutLogRecordExporter (#10420)
- Spring starter: use duration parser of config properties (#10512)
- Spring starter: support
otel.propagators
(#10408) - Set route only on the SERVER span (#10290)
- Convert Apache HttpClient 4.3 library instrumentation to "low-level" HTTP instrumentation (#10253)
🛠️ Bug fixes
- Fix log replay of the Log4j 2 appender (#10243)
- Fix Netty addListener instrumentation (#10254)
- Fix Calling shutdown() multiple times warning in spring starter (#10222)
- Correctly fix NPE in servlet AsyncListener (#10250)
- add @ConditionalOnMissingBean to LoggingMetricExporter (#10283)
- Make Netty Instrumentation HttpServerRequestTracingHandler propagate "Channel Inactive" event to downstream according to parent contract (#10303)
- Improve rediscala instrumentation to address sporadic test failure (#10301)
- Undertow: restore attached context only when it is for different trace (#10336)
- Reactor kafka wrapper delegates to wrong method (#10333)
- Spring starter: add missing LoggingMetricExporterAutoConfiguration to spring factories (#10282)
- Spring starter: Fix MapConverter does not get initialized if some exporters are turned off (#10346)
- Update azure-core-tracing-opentelemetry version and fix double-collection for synchronous HTTP requests (#10350)
- Allow OSGI dynamic import for
io.opentelemetry
package when matching (#10385) - Use direct peer address in
client.address
when X-Forwarded-For is not present (#10370) - Netty: don't expose tracing handler in handlers map (#10410)
- Wrap request to avoid modifying attributes of the original request (#10389)
- Fix JarAnalyzer warnings on Payara (#10458)
- Return wrapped connection from
Statement.getConnection()
(#10554) - Spring starter: Fix
otel.propagators
(#10559) - Populate
server.address
andserver.port
in Cassandra instrumentation (#10357)
🧰 Tooling
- Allow multiple invokedynamic InstrumentationModules to share classloaders (#10015)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@AlchemyDing
@breedx-splk
@cartersocha
@cbeneke
@codeboten
@dmarkwat
@elbiocaetano
@hadesy
@heyams
@jack-berg
@jackshirazi
@jakub-pomykala
@jaydeluca
@jeanbisutti
@JonasKunz
@jonasrutishauser
@KayWu
@kenfinnigan
@laurit
@lichenglin
@lmolkova
@lukny
@manikmagar
@mmorel-35
@pellmont
@Periecle
@pmitura-lucid
@rgrochowicz
@rickardoberg
@Roiocam
@rvenancio
@shaykeren
@steverao
@SylvainJuge
@theletterf
@trask
@zeitlinger
Version 1.32.1
This is a patch release on the previous 1.32.0 release, fixing the issue(s) below.
📈 Enhancements
- Backport: update jackson packages to v2.16.1 (#10198, #10199)
- Backport: implement forEach support for aws sqs tracing list (#10195)
- Backport: Bridge metric advice in OpenTelemetry API 1.32 (#10026)
- Update the OpenTelemetry SDK version to 1.34.1 (#10320)
🛠️ Bug fixes
- Backport: Handle authority from request when HttpHost is null (#10204)
- Backport: Null check for nullable response object in aws sdk 1.1 instrumentation (#10029)
- Backport: Make Netty Instrumentation HttpServerRequestTracingHandler propagate "Channel Inactive" event to downstream according to parent contract (#10303)
- Backport: Fix Netty addListener instrumentation (#10254)
- Backport: Update azure-core-tracing-opentelemetry version and fix sync suppression (#10350)
Version 2.0.0
This release targets the OpenTelemetry SDK 1.34.1.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
The 2.0.0 release contains significant breaking changes that will most likely affect all users, please be sure to read the breaking changes below carefully.
Note: 1.32.x will be security patched for at least 6 months in case some of the changes below are too disruptive to adopt right away.
⚠️ ⚠️ Breaking changes ⚠️ ⚠️
- The default OTLP protocol has been changed from
grpc
tohttp/protobuf
in order to align with the specification. You can switch to thegrpc
protocol usingOTEL_EXPORTER_OTLP_PROTOCOL=grpc
or-Dotel.exporter.otlp.protocol=grpc
. - Micrometer metric bridge has been disabled by default. You can enable it using
OTEL_INSTRUMENTATION_MICROMETER_ENABLED=true
or-Dotel.instrumentation.micrometer.enabled=true
. - The OTLP logs exporter is now enabled by default. You can disable it using
OTEL_LOGS_EXPORTER=none
or-Dotel.logs.exporter=none
. - Controller spans are now disabled by default. You can enable them using
OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_CONTROLLER_TELEMETRY_ENABLED=true
or-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true
. - View spans are now disabled by default. You can enable them using
OTEL_INSTRUMENTATION_COMMON_EXPERIMENTAL_VIEW_TELEMETRY_ENABLED=true
or-Dotel.instrumentation.common.experimental.view-telemetry.enabled=true
. ⚠️ ⚠️ Stable HTTP semantic conventions are now emitted⚠️ ⚠️ - TOO MANY CHANGES TO LIST HERE, be sure to review the full list of changes.
- Stable JVM semantic conventions are now emitted.
-
Memory metrics
process.runtime.jvm.memory.usage
renamed tojvm.memory.used
process.runtime.jvm.memory.committed
renamed tojvm.memory.committed
process.runtime.jvm.memory.limit
renamed tojvm.memory.limit
process.runtime.jvm.memory.usage_after_last_gc
renamed tojvm.memory.used_after_last_gc
process.runtime.jvm.memory.init
renamed tojvm.memory.init
(still experimental)- Metric attributes:
type
renamed tojvm.memory.type
pool
renamed tojvm.memory.pool.name
-
Garbage collection metrics
process.runtime.jvm.gc.duration
renamed tojvm.gc.duration
- Metric attributes:
name
renamed tojvm.gc.name
action
renamed tojvm.gc.action
-
Thread metrics
process.runtime.jvm.threads.count
renamed tojvm.threads.count
- Metric attributes:
daemon
renamed tojvm.thread.daemon
-
Classes metrics
process.runtime.jvm.classes.loaded
renamed tojvm.classes.loaded
process.runtime.jvm.classes.unloaded
renamed tojvm.classes.unloaded
process.runtime.jvm.classes.current_loaded
renamed tojvm.classes.count
-
CPU metrics
process.runtime.jvm.cpu.utilization
renamed tojvm.cpu.recent_utilization
process.runtime.jvm.system.cpu.load_1m
renamed tojvm.system.cpu.load_1m
(still experimental)process.runtime.jvm.system.cpu.utilization
renamed tojvm.system.cpu.utilization
(still experimental)
-
Buffer metrics
process.runtime.jvm.buffer.limit
renamed tojvm.buffer.memory.limit
(still experimental)process.runtime.jvm.buffer.count
renamed tojvm.buffer.count
(still experimental)process.runtime.jvm.buffer.usage
renamed tojvm.buffer.memory.usage
(still experimental)- Metric attributes:
pool
renamed tojvm.buffer.pool.name
-
More migration notes
- Lettuce CONNECT spans are now disabled by default. You can enable them using
OTEL_INSTRUMENTATION_LETTUCE_CONNECTION_TELEMETRY_ENABLED=true
or-Dotel.instrumentation.lettuce.connection-telemetry.enabled=true
. - The configuration property
otel.instrumentation.log4j-appender.experimental.capture-context-data-attributes
has been renamed tootel.instrumentation.log4j-appender.experimental.capture-mdc-attributes
. - MDC attribute prefixes (
log4j.mdc.
andlogback.mdc.*
) have been removed. - The artifact
instrumentation-api-semconv
has been renamed toinstrumentation-api-incubator
. - HTTP classes have been moved from
instrumentation-api-incubator
toinstrumentation-api
and as a result are now stable.
🌟 New javaagent instrumentation
- Vert.x redis client (#9838)
📈 Enhancements
- Reduce reactor stack trace depth (#9923)
- Implement
error.type
inspring-webflux
andreactor-netty
instrumentations (#9967) - Bridge metric advice in OpenTelemetry API 1.32 (#10026)
- Capture http.route for akka-http (#10039)
- Rename
telemetry.auto.version
totelemetry.distro.version
and addtelemetry.distro.name
(#9065) - Implement forEach support for aws sqs tracing list (#10062)
- Add http client response attributes to aws sqs process spans (#10074)
- Add support for
OTEL_RESOURCE_ATTRIBUTES
,OTEL_SERVICE_NAME
,OTEL_EXPORTER_OTLP_HEADERS
, andOTEL_EXPORTER_OTLP_PROTOCOL
for spring boot starter (#9950) - Add elasticsearch-api-client as instrumentation name to elasticsearch-api-client-7.16 (#10102)
- Add instrumentation for druid connection pool (#9935)
- Remove deprecated rocketmq setting (#10125)
- JMX metrics for Tomcat with 'Tomcat' JMX domain (#10115)
- Capture the SNS topic ARN under the 'messaging.destination.name' span attribute. (#10096)
- Add network attributes to rabbitmq process spans (#10210)
- Add UserExcludedClassloadersConfigurer (#10134)
- Apply both server attributes & network attributes to Lettuce 5.1 (#10197)
🛠️ Bug fixes
- Fix aws propagator presence check in spring boot starter (#9924)
- Capture authority from apache httpclient request when HttpHost is null (#9990)
- Fix NoSuchBeanDefinitionException with the JDBC driver configuration in spring boot starter (#9978)
- Null check for nullable response object in aws sdk 1.1 instrumentation (#10029)
- Fix using opentelemetry-spring-boot with Java 8 and Gradle (#10066)
- Fix transforming Java record types (#10052)
- Fix warnings from the spring boot starter (#10086)
- Resolve
ParameterNameDiscoverer
Bean Conflict inspring-boot-autoconfigure
(#10105)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@AlchemyDing
@anhermon
@anuraaga
@bcarter97
@breedx-splk
@happyuser23
@heyams
@jack-berg
@jaydeluca
@jeanbisutti
@JonasKunz
@kenfinnigan
@knbk
@laurit
@mateuszrzeszutek
@moznion
@nilsga
@PaurushGarg
@PeterF778
@rBrda
@SHaaD94
@stevesea
@SylvainJuge
@tduncan
@theletterf
@trask
@TylerHelmuth
@vallabhnatu
@xiongchun
@zeitlinger
Version 1.32.0
This release targets the OpenTelemetry SDK 1.32.0.
Note that many artifacts have the -alpha
suffix attached to their version number, reflecting that they are still alpha quality and will continue to have breaking changes. Please see the VERSIONING.md for more details.
Migration notes
- Old server/client socket getter methods deprecated (#9716)
📈 Enhancements
- Allow enabling receive telemetry in kafka library instrumentation (#9693)
- Add JdbcTelemetry and JdbcTelemetryBuilder (#9685)
- Rename http.resend_count to http.request.resend_count (#9700)
- Define
url.scheme
in terms of logical operation in HTTP server semconv (when opting in to new semconv) (#9698) - Generate only consumer span for sqs receive message (#9652)
- Replace
(client|server).socket.(address|port)
attributes withnetwork.(peer|local).(address|port)
(when opting in to new semconv) (#9676) - Add capability for invokedynamic InstrumentationModules to inject proxies (#9565)
- Make
network.transport
andnetwork.type
opt-in (when opting in to new semconv) (#9719) - Factor in
X-Forwarded-Host
/Forwarded
when capturingserver.address
andserver.port
(when opting in to new semconv) (#9721) - Move class that should've been internal to internal package (#9725)
- Only set
server.port
whenserver.address
is set (when opting in to new semconv) (#9737) - Add messaging conventions to sqs spans (#9712)
- Make the JDBC driver config work with the OTel starter (#9625)
- Don't normalize the '-' character in HTTP header names when opting in to new semconv (#9735)
- Add instrumentation for jaxws metro 3.0+ (#9705)
- Change
user_agent.original
from recommended to opt-in on HTTP client spans (#9776) - Change the precedence between
:authority
andHost
headers (#9774) - Move capturing enduser.id attribute behind a flag (#9751, #9788)
- Remove conditional requirement on
network.peer.address
andnetwork.peer.port
(when opting in to new semconv) (#9775) - Change
client.port
from recommended to opt-in on HTTP server spans (when opting in to new semconv) (#9786) - Make
url.scheme
opt in for HTTP client metrics and makeserver.port
required (when opting in to new semconv) (#9784) - Change
http.request.body.size
andhttp.response.body.size
attributes from recommended to opt-in (when opting in to new semconv) (#9799) - Capture
http.route
in spring-cloud-gateway (#9597) - Always set messaging operation (#9791)
- Change
network.protocol.name
from opt-in to conditionally required (when opting in to new semconv) (#9797) - Support specifying
spring.application.name
in thebootstrap.properties
,bootstrap.yml
andbootstrap.yaml
(#9801) - Add process spans to aws-1 sqs instrumentation (#9796)
- Implement capturing message headers for aws1 sqs spans (#9824)
- Add process spans to aws2 sqs instrumentation (#9778)
- Add
service.name
to MDC (#9647) - Capture enduser attributes in Spring Security (#9777)
- Capture message id in aws1 sqs instrumentation (#9841)
- Implement capturing message headers for aws2 sqs spans (#9842)
- Move kafka metrics to separate instrumentation module (#9862)
- Capture logback logger context properties (#9553)
- Stable JVM semconv implementation: classes (#9821)
- Stable JVM semconv implementation: threads (#9839)
- Stable JVM semconv implementation: GC (#9890)
- Bridge incubator metrics apis (#9884)
- Ability to instrument logs before OTel injection into OTel appenders (#9798)
- Suppress instrumentation based on suppress Context key (#9739)
- Stable JVM semconv implementation: the rest (#9896)
🛠️ Bug fixes
- Fix armeria server instrumentation for http2 (#9723)
- Guard against null list from aws SQS lib (#9710)
- Fix parsing port from mariadb jdbc url (#9863)
🧰 Tooling
- Improve disableShadowRelocate (#9715)
- Allow injection of helper bytecode as resources (#9752)
- Rewrite @Advice.Enter for indy advice (#9887)
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
@123liuziming
@AlchemyDing
@breedx-splk
@brunobat
@cleverchuk
@cxjava
@glebignatieff
@hannahchan
@jack-berg
@jackshirazi
@jaydeluca
@jeanbisutti
@JonasKunz
@kares
@kenfinnigan
@laurit
@lesterhaynes
@LikeTheSalad
@mateuszrzeszutek
@mmorel-35
@nluk
@otbe
@PaurushGarg
@philsttr
@steverao
@tduncan
@trask
@tylerbenson
@wzy531a