{"id":31915485,"url":"https://github.com/stackify/stackify-java-apm-annot","last_synced_at":"2026-03-07T11:01:30.273Z","repository":{"id":57727257,"uuid":"50063499","full_name":"stackify/stackify-java-apm-annot","owner":"stackify","description":"Stackify Trace Annotation for Java APM+","archived":false,"fork":false,"pushed_at":"2018-08-08T18:10:17.000Z","size":24,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-10-13T19:48:53.920Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","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/stackify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-20T22:01:36.000Z","updated_at":"2021-04-29T07:15:18.000Z","dependencies_parsed_at":"2022-09-26T16:40:32.600Z","dependency_job_id":null,"html_url":"https://github.com/stackify/stackify-java-apm-annot","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/stackify/stackify-java-apm-annot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackify%2Fstackify-java-apm-annot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackify%2Fstackify-java-apm-annot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackify%2Fstackify-java-apm-annot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackify%2Fstackify-java-apm-annot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackify","download_url":"https://codeload.github.com/stackify/stackify-java-apm-annot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackify%2Fstackify-java-apm-annot/sbom","scorecard":{"id":845416,"data":{"date":"2025-08-11","repo":{"name":"github.com/stackify/stackify-java-apm-annot","commit":"648d9920b34ed828c85aad58b595ff3dd2466db3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Code-Review","score":0,"reason":"Found 0/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T21:19:10.324Z","repository_id":57727257,"created_at":"2025-08-23T21:19:10.324Z","updated_at":"2025-08-23T21:19:10.324Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: 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":"2025-10-13T19:47:30.935Z","updated_at":"2026-03-07T11:01:30.254Z","avatar_url":"https://github.com/stackify.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stackify-java-apm-annot\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.stackify/stackify-java-apm-annot/badge.svg)](http://mvnrepository.com/artifact/com.stackify/stackify-java-apm-annot)\n[![Build Status](https://travis-ci.org/stackify/stackify-java-apm-annot.png)](https://travis-ci.org/stackify/stackify-java-apm-annot)\n\n@Trace Annotation for Stackify Java APM+\n\nStackify APM+ Overview:\n\nhttp://support.stackify.com/agent-installation-overview/\n\nSign Up for a Trial:\n\nhttp://www.stackify.com/sign-up/\n\n## Installation\n\nAdd it as a maven dependency:\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.stackify\u003c/groupId\u003e\n    \u003cartifactId\u003estackify-java-apm-annot\u003c/artifactId\u003e\n    \u003cversion\u003eINSERT_LATEST_MAVEN_CENTRAL_VERSION\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Usage\n\n\n### RUM Manual Instrumentation \n\nReal User Monitoring (RUM) manual instrumentation allows you to specify where the RUM JavaScript block is injected. \n\nIt is recommended you provide a `stackify-api.properties` file in your application classpath with the following content: \n\n````\nstackify.application=My Application Name\nstackify.environment=My Environment Name\n````\n\nYour application code will need to call out to the Stackify `com.stackify.apm.Stackify.getRUMJavaScriptBlock()` method in the `\u003chead\u003e` section as detailed below: \n\n**JSP Example**\n  \n````\n\u003chtml\u003e\n  \u003chead\u003e \n        \u003c%= com.stackify.apm.Stackify.getRUMJavaScriptBlock() %\u003e\n        \u003cscript and link tags\u003e\n    \u003c/head\u003e\n    \u003cbody\u003e\n    ... \n    \u003c/body\u003e\n\u003c/html\u003e\n````\n\n\n### @Trace Annotation\n\nAdd custom instrumentation to classes using the @Trace annotation. The annotation needs to be added to\nthe class and the method to be instrumented. This is an alternative to adding a custom configuration\nfile (stackify-apm.json) to your application.\n\n\n#### Tracked Functions\n* **trackedFunction**  marks a specific method as a tracked function.\n* **trackedFunctionName** gives control over how the tracked function will be identified in the dashboard. The function\nname can be a `String` and can also include the variables `{{ClassName}}`, `{{MethodName}}` and `{{MethodParameters[#]}}`\n(where `#` is an `int` referencing the parameter index on the annotated method, index starts at 0).\n\n#### Custom Trace Entry Point\nStackify by default generates traces from web-requests on [supported application servers](http://support.stackify.com/hc/en-us/articles/209709913-What-Java-Application-Containers-and-Frameworks-are-Supported-) \nand non-web-requests from [supported frameworks](http://support.stackify.com/hc/en-us/articles/209709913-What-Java-Application-Containers-and-Frameworks-are-Supported-).\nYou can extend support by using `@Trace(start = true)` on a method; which will start a new trace. \n\n```\nimport com.stackify.apm.Trace;\n\n@Trace\npublic class ClassToBeInstrumented \n{\n\n    @Trace(start = true)\n    public void methodToStartNewTrace()\n    {\n        ...\n    }\n\n    @Trace\n    public void methodToBeInstrumented()\n    {\n        ...\n    }\n    \n    @Trace\n    public void anotherMethodToBeInstrumented()\n    {\n        ...\n    }\n\n    @Trace(trackedFunction = true, trackedFunctionName = \"Tracked Function Identifier\")\n    public void anotherMethodToBeInstrumentedAndMarkedAsTrackedFunction()\n    {\n        ...\n    }\n\n    @Trace(trackedFunction = true, trackedFunctionName = \"Tracked Function {{ClassName}} - {{MethodParameters[0]}}\")\n    public void anotherMethodToBeInstrumentedAndMarkedAsTrackedFunctionVariable(String value)\n    {\n        ...\n    }\n\n    public void notInstrumented()\n    {\n        ...\n    }\n}\n```\n\n## License\n\nCopyright 2017 Stackify, LLC.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackify%2Fstackify-java-apm-annot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackify%2Fstackify-java-apm-annot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackify%2Fstackify-java-apm-annot/lists"}