{"id":19721867,"url":"https://github.com/inspectit/inspectit-gepard-agent","last_synced_at":"2026-01-25T01:03:16.242Z","repository":{"id":247373487,"uuid":"801556011","full_name":"inspectIT/inspectit-gepard-agent","owner":"inspectIT","description":"This repository contains the inspectIT Gepard OpenTelemetry Extension.","archived":false,"fork":false,"pushed_at":"2024-10-21T09:32:04.000Z","size":310,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-21T13:37:50.189Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inspectIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-16T13:09:23.000Z","updated_at":"2024-10-10T15:12:03.000Z","dependencies_parsed_at":"2024-10-22T10:39:07.546Z","dependency_job_id":null,"html_url":"https://github.com/inspectIT/inspectit-gepard-agent","commit_stats":null,"previous_names":["inspectit/inspectit-gepard-agent"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/inspectIT/inspectit-gepard-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inspectIT%2Finspectit-gepard-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inspectIT%2Finspectit-gepard-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inspectIT%2Finspectit-gepard-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inspectIT%2Finspectit-gepard-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inspectIT","download_url":"https://codeload.github.com/inspectIT/inspectit-gepard-agent/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inspectIT%2Finspectit-gepard-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28740400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T22:12:27.248Z","status":"ssl_error","status_checked_at":"2026-01-24T22:12:10.529Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-11T23:15:44.791Z","updated_at":"2026-01-25T01:03:16.226Z","avatar_url":"https://github.com/inspectIT.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# inspectIT Gepard Extension\n\nExtension for the OpenTelemetry Java agent.\n\ninspectIT Gepard is the further development of [inspectIT Ocelot](https://github.com/inspectIT/inspectit-ocelot).\nWhile the inspectIT Ocelot Java agent is self-made, inspectIT Gepard uses the OpenTelemetry Java agent as basis\nand extends it with features from inspectIT Ocelot.\n\n## Main Features\n\nWe want to enable **dynamic instrumentation** with the OpenTelemetry agent. \nThis means, that you can change your instrumentation **during runtime**. \nFor example, you can add new methods to your tracing or record data for new metrics, everything without restarting your application!\n\nThe instrumentation configuration will be fetched from a remote server regularly. \nThe server's url is configurable via the property `inspectit.config.http.url`\n\nWe are also developing our own [configuration server](https://github.com/inspectIT/inspectit-gepard-configurationserver).\n\n## Installation\n\nTo build this extension project, run `./gradlew build` or `./gradlew extendedAgent` (no tests). \nYou can find the resulting jar file in `build/libs/`.\n\nTo add the extension to the instrumentation agent:\n\n1. Copy the jar file to a host that is running an application to which you've attached the OpenTelemetry Java instrumentation.\n2. Modify the startup command to add the full path to the extension file. For example:\n\n     ```bash\n     java -javaagent:path/to/opentelemetry-javaagent.jar \\\n          -Dotel.javaagent.extensions=build/libs/opentelemetry-javaagent.jar \\\n          -Dotel.service.name=\"my-service\"\n          -jar myapp.jar\n     ```\n\nNote: to load multiple extensions, you can specify a comma-separated list of extension jars or directories (that\ncontain extension jars) for the `otel.javaagent.extensions` value.\n\n## Network communication\n\nThe extension contains a client, who is able to communicate with other servers via HTTPS.\nYou can set the server url via system or environmental properties.\nYou have the option to use a keystore for TLS:\n\n1. Provide a local keystore, which contains the certificate of your server\n2. Modify the startup command to add the path to the keystore as well as the password. For example:\n\n   ```bash\n     java -javaagent:path/to/opentelemetry-javaagent.jar \\\n          -Dotel.javaagent.extensions=build/libs/opentelemetry-javaagent.jar \\\n          -Dotel.service.name=\"my-service\" \\\n          -Dinspectit.config.http.url=\"https://{server-host:port}/api/v1\" \\\n          -Djavax.net.ssl.trustStore=\"path\\to\\keystore\\agent-keystore.jks\" \\\n          -Djavax.net.ssl.trustStorePassword=\"password\"\n          -jar myapp.jar\n     ```\n\n## Further Information\n\nThe repository was build upon this example project: https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/examples/extension\n\n## Docker\n\nTo push a new Docker image, run the following commands:\n\n\n1. `./gradlew dockerTag`\n2. `docker login -u \u003cuser\u003e -p \u003cpassword\u003e`\n3. `docker push inspectit/inspectit-gepard-agent:\u003cversion\u003e`\n\n\n### Why Gepard?\nGepard is the German name for the animal cheetah as well as an acronym for: \n\n\"**G**anzheitliche, **e**ffizienz-orientierte, **P**erformance **A**nwendungsüberwachung mit **R**eporting und **D**iagnose\",\n\nwhich means: holistic, efficiency-orientated, performance application monitoring with reporting and diagnostics.\n\n### Limitations\n\nCurrently, it is not tested to instrument methods of **lambdas** or synthetic methods.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finspectit%2Finspectit-gepard-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finspectit%2Finspectit-gepard-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finspectit%2Finspectit-gepard-agent/lists"}