/mesmer

OpenTelemetry agent for Scala applications

Primary LanguageScalaApache License 2.0Apache-2.0

Project Stage CI Release Snapshot
Project stage Scala CI Release Artifacts Snapshot Artifacts

Mesmer

Mesmer is an OpenTelemetry instrumentation library for Scala applications.

Compatibility:

  • Scala: 2.13.x
  • JVM: 1.11+

See the docs for more information.

Contributors

Local testing

examples subproject contains a test application that uses Akka Cluster. Go here for more information.

Contributor setup

  1. You're encouraged to use the sbt native client. It will speed up your builds and your pre-commit checks (below). Just set export SBT_NATIVE_CLIENT=true and sbt will use the native client.
  2. Install pre-commit
  3. Run pre-commit install
  4. If you're using Intelij Idea:
    • Download "google-java-format" plugin and use it
    • Go to "Editor" -> "Code Style" -> "YAML". Uncheck "Indent sequence value" and "Brackets" (in the "Spaces" menu)

Documentation

Mesmer project uses Docusaurus v2 with mdoc to produce type-checked documentation. All is configured with the sbt-mdoc plugin according to this document.

There are 3 directories relevant to the process:

  • website/ - Docusaurus application
  • docs/ - markdown pages with the documentation
  • mesmer-docs/ - markdown pages compiled by mdoc

To run Docusaurus locally:

  • install node (version >= 14) and yarn
  • go to the "website" directory:
cd website
  • run the following:
yarn
yarn run start

To see the documentation changes in your running Docusaurus instance you need to recompile with the following command:

sbt docs/mdoc

This will put them into mesmer-docs/target/mdoc where the Docusaurus can pick them up (the location where Docusaurus looks for these pages is configured in website/docusaurus.config.js)

The homepage (in case you need to make changes to it) resides in website/src/pages/index.js.