{"id":24370345,"url":"https://github.com/bitlap/skywalking-scala","last_synced_at":"2025-04-10T17:42:33.008Z","repository":{"id":163948897,"uuid":"639381946","full_name":"bitlap/skywalking-scala","owner":"bitlap","description":":zap: SkyWalking Agent Plugins for Scala, especially for the ZIO ecosystem.","archived":false,"fork":false,"pushed_at":"2024-01-26T02:19:25.000Z","size":21562,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T15:21:55.298Z","etag":null,"topics":["skywalking-caliban","skywalking-cats-effects","skywalking-scala","skywalking-zio","skywalking-ziogrpc","skywalking-ziohttp"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitlap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-05-11T11:07:17.000Z","updated_at":"2024-01-18T09:27:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"52b56fe4-0c10-471b-a970-7edbcf657fa8","html_url":"https://github.com/bitlap/skywalking-scala","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fskywalking-scala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fskywalking-scala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fskywalking-scala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitlap%2Fskywalking-scala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitlap","download_url":"https://codeload.github.com/bitlap/skywalking-scala/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262198,"owners_count":21074262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["skywalking-caliban","skywalking-cats-effects","skywalking-scala","skywalking-zio","skywalking-ziogrpc","skywalking-ziohttp"],"created_at":"2025-01-19T04:24:14.953Z","updated_at":"2025-04-10T17:42:32.991Z","avatar_url":"https://github.com/bitlap.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"SkyWalking Plugins for Scala\n---\n\n[SkyWalking Scala](https://github.com/bitlap/skywalking-scala) is a SkyWalking Agent Plugins for Scala, especially for the ZIO ecosystem.\n\n[![Project stage][Badge-Stage]][Badge-Stage-Page] \n![CI][Badge-CI]\n\n[Badge-CI]: https://github.com/bitlap/skywalking-scala/actions/workflows/ScalaCI.yml/badge.svg\n[Badge-Stage]: https://img.shields.io/badge/Project%20Stage-Development-yellowgreen.svg\n[Badge-Stage-Page]: https://github.com/bitlap/bitlap/wiki/Project-Stages\n\n\u003e Still in the experimental stage, there may be some minor issues related to work steal, especially for ZIO and Cats-Effect.\n\n## Environment\n\n- Java 11\n- Scala 3.3.0\n- SkyWalking 9.1.0\n\n## Example\n\n![](skywalking-scala-preview.jpg)\n\n## Available plugins\n\n| plugin                 | maybe support version                                                           | tested version                                                                  |\n|------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------|\n| cats-effect-v3x-plugin | 3.4.x                                                                           | 3.4.1                                                                           |\n| zio-v2x-plugin         | 2.0.x                                                                           | 2.0.9,2.0.13,2.0.15                                                             |\n| ziogrpc-v06rcx-plugin  | 0.6.0-test6 ~ 0.6.0-RC5                                                         | 0.6.0-RC5                                                                       |\n| ziohttp-v2x-plugin     | 2.0.0-RC2 ~ 2.0.0-RC11                                                          | 2.0.0-RC10                                                                      |\n| caliban-v2x-plugin     | 2.0.0 ~ 2.0.2                                                                   | 2.0.1                                                                           |\n| executors-plugin       | -                                                                               | -                                                                               |\n| ziocache-plugin        | Blocking by [byte-buddy issue](https://github.com/raphw/byte-buddy/issues/1577) | Blocking by [byte-buddy issue](https://github.com/raphw/byte-buddy/issues/1577) |\n\n\n\u003e Other small versions of the library supported by this plugin may also work, but they have not been tested.\n\nThese plugins can be used together with the following plugins, tested by me:\n- `apm-hikaricp-3.x-4.x-plugin-*.jar`\n- `apm-jackson-2.x-plugin-*.jar`\n- `apm-jdbc-commons-*.jar`\n- `apm-jdk-forkjoinpool-plugin-*.jar`\n- `apm-jdk-threading-plugin-*.jar`\n- `apm-lettuce-5.x-plugin-*.jar`\n- `apm-mysql-8.x-plugin-*.jar`\n- `apm-mysql-commons-*.jar`\n- `apm-postgresql-8.x-plugin-*.jar`\n- `apm-pulsar-2.8.x-plugin-*.jar`\n- `apm-pulsar-common-*.jar`\n- and so on ...\n\nNOTE: `apm-ziogrpc-v06rcx-plugin-*.jar` should never be used together with `apm-grpc-1.x-plugin-*.jar`.\n\n## How to start\n\n1. Clone code: `git clone https://github.com/bitlap/skywalking-scala.git`.\n2. Enter the source file directory: `cd skywalking-scala`.\n3. Build plugins: `sh scenarios/packageJars.sh`. \n4. Copy the `scenarios/skywalking-agent/plugins/*.jar` to skywalking plugins folder. (Copy on demand)\n\nPlease check the official documents for specific information\n[skywalking.apache.org/docs](https://skywalking.apache.org/docs/skywalking-java/v8.15.0/en/setup/service-agent/java-agent/readme/)\n\nTo use the plugin quickly, you can download it from [Release Assets](https://github.com/bitlap/skywalking-scala/releases)\n\n## Scenarios\n\n\u003e It needs docker \u0026 docker-compose\n\n1. Run two services `hello-server` and `hello-client`: `sh scenarios/runExamplesOnDocker.sh`\n2. Send a request: `curl http://localhost:8090/hello`\n3. Open in browser: `http://localhost:8080/general`\n\n##  More information\n\n### How to realize it\n| plugin                 | library                                                      | Enhance Targets                                                                                       | \n|------------------------|--------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|\n| cats-effect-v3x-plugin | cats-effect                                                  | `cats.effect.IOFiber`                                                                                 |\n| zio-v2x-plugin         | zio                                                          | `zio.internal.FiberRuntime`, `zio.Executor`                                                           |\n| ziogrpc-v06rcx-plugin  | zio-grpc                                                     | `scalapb.zio_grpc.ZChannel`\u003cbr/\u003e`io.grpc.ServerCall`\u003cbr/\u003e`scalapb.zio_grpc.server.ZServerCallHandler` |\n| ziohttp-v2x-plugin     | zio-http                                                     | `zhttp.http.Http$PartialCollectHttp$`                                                                 |\n| caliban-v2x-plugin     | caliban                                                      | `caliban.GraphQLInterpreter`, `caliban.wrappers.Wrapper`                                              |\n| executors-plugin       | `java.util.concurrent.ThreadPoolExecutor` and its subclasses | `submit`, `schedule`, `execute`                                                                       |\n| ziocache-plugin        | zio-cache                                                    | `zio.cache.Cache`                                                                                     |\n\n### Available configurations\n| key                                             | description                                                                                                                                            |\n|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `plugin.ziov2.ignore_fiber_regexes`             | Ignore ZIO Fibers by `FiberId.location` which match this regex, i.e. no span will be created, default is empty. **Allow commas to separate multiple**. |\n| `plugin.calibanv2.url_prefix`                   | Add a custom prefix to the graphql operation, default is `Caliban/GraphQL/`.                                                                           |\n| `plugin.calibanv2.ignore_url_prefixes`          | Ignore operation names starting with this prefix, i.e. no span will be created. **Allow commas to separate multiple**.                                 |\n| `plugin.calibanv2.collect_variables`            | Collect request variables.                                                                                                                             |\n| `plugin.calibanv2.variables_length_threshold`   | How many characters to keep and send to the OAP backend.                                                                                               |\n| `plugin.ziohttpv2.ignore_url_prefixes`          | Ignore request paths starting with this prefix, i.e. no span will be created. **Allow commas to separate multiple**.                                   |\n| `plugin.ziohttpv2.collect_http_params`          | Collect http query params.                                                                                                                             |\n| `plugin.ziohttpv2.http_params_length_threshold` | How many characters to keep and send to the OAP backend.                                                                                               |\n\nThe prefix should be added when passing command line parameters, such as: `-Dskywalking.plugin.calibanv2.url_prefix=GQL/`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitlap%2Fskywalking-scala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitlap%2Fskywalking-scala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitlap%2Fskywalking-scala/lists"}