{"data":{"skill":{"slug":"sickn33-azure-monitor-opentelemetry-exporter-py","name":"azure-monitor-opentelemetry-exporter-py","icon":"📦","repo":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-monitor-opentelemetry-exporter-py","status":"approved","author":"sickn33","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"2134646c-eadc-499f-bb0d-300f6be11a12","skill_id":"8f3755c6-cca5-417b-b4e1-86d2863f08e9","version":5,"content_hash":"v3:f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526:8e79104129fb4f166f5b344df01d5b3e3ada7fdbd0d86a3bdfdc5abfefae2cfa:c0bdd2746d3b98db5d6149c24f66630c791ff0559ae0993fe107cd3d30c9fdd6:736b696c6c732f7369636b6e33332f617a7572652d6d6f6e69746f722d6f70656e74656c656d657472792d6578706f727465722d7079:1c98085c9a0537e562c9cb5b80d0466f","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 34 external-command findings are Markdown fences or inline code, not Ruby or shell command execution. The two URLs are placeholder Azure ingestion endpoints used in documentation. No prompt injection or malicious intent was found.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":17,"line_start":15},{"file":"SKILL.md","line_end":21,"line_start":17},{"file":"SKILL.md","line_end":23,"line_start":21},{"file":"SKILL.md","line_end":28,"line_start":23},{"file":"SKILL.md","line_end":29,"line_start":28},{"file":"SKILL.md","line_end":30,"line_start":29},{"file":"SKILL.md","line_end":34,"line_start":30},{"file":"SKILL.md","line_end":55,"line_start":34},{"file":"SKILL.md","line_end":59,"line_start":55},{"file":"SKILL.md","line_end":78,"line_start":59},{"file":"SKILL.md","line_end":82,"line_start":78},{"file":"SKILL.md","line_end":106,"line_start":82},{"file":"SKILL.md","line_end":110,"line_start":106},{"file":"SKILL.md","line_end":112,"line_start":110},{"file":"SKILL.md","line_end":117,"line_start":112},{"file":"SKILL.md","line_end":121,"line_start":117},{"file":"SKILL.md","line_end":128,"line_start":121},{"file":"SKILL.md","line_end":132,"line_start":128},{"file":"SKILL.md","line_end":134,"line_start":132},{"file":"SKILL.md","line_end":143,"line_start":134},{"file":"SKILL.md","line_end":149,"line_start":143},{"file":"SKILL.md","line_end":157,"line_start":149},{"file":"SKILL.md","line_end":161,"line_start":157},{"file":"SKILL.md","line_end":166,"line_start":161},{"file":"SKILL.md","line_end":170,"line_start":166},{"file":"SKILL.md","line_end":180,"line_start":170},{"file":"SKILL.md","line_end":186,"line_start":180},{"file":"SKILL.md","line_end":187,"line_start":186},{"file":"SKILL.md","line_end":188,"line_start":187},{"file":"SKILL.md","line_end":194,"line_start":188},{"file":"SKILL.md","line_end":195,"line_start":194},{"file":"SKILL.md","line_end":196,"line_start":195},{"file":"SKILL.md","line_end":197,"line_start":196},{"file":"SKILL.md","line_end":206,"line_start":197}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":22,"line_start":22},{"file":"SKILL.md","line_end":177,"line_start":177}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":212,"audit_model":"codex","audited_at":"2026-07-23T21:55:16.597+00:00","created_at":"2026-07-26T06:20:24.955022+00:00","static_findings":[{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":17,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":21,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":23,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":28,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Quick setup, auto-instrumentation | `azure-monitor-opentelemetry` (distro) |","category":"external_commands","line_end":29,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Custom OpenTelemetry pipeline | `azure-monitor-opentelemetry-exporter` (this) |","category":"external_commands","line_end":30,"severity":"medium","line_start":29},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Fine-grained control over telemetry | `azure-monitor-opentelemetry-exporter` (this) |","category":"external_commands","line_end":34,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":55,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":59,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":78,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":82,"severity":"medium","line_start":78},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":106,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":110,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Exporters read `APPLICATIONINSIGHTS_CONNECTION_STRING` automatically:","category":"external_commands","line_end":112,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":117,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":121,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":128,"severity":"medium","line_start":121},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":132,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `ApplicationInsightsSampler` for consistent sampling:","category":"external_commands","line_end":134,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":143,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":149,"severity":"medium","line_start":143},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":157,"severity":"medium","line_start":149},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":161,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":166,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":170,"severity":"medium","line_start":166},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```python","category":"external_commands","line_end":180,"severity":"medium","line_start":170},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":186,"severity":"medium","line_start":180},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `AzureMonitorTraceExporter` | Traces/Spans | requests, dependencies, exceptions |","category":"external_commands","line_end":187,"severity":"medium","line_start":186},{"id":"external_commands:SKILL.md:187:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `AzureMonitorMetricExporter` | Metrics | customMetrics, performanceCounters |","category":"external_commands","line_end":188,"severity":"medium","line_start":187},{"id":"external_commands:SKILL.md:188:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `AzureMonitorLogExporter` | Logs | traces, customEvents |","category":"external_commands","line_end":194,"severity":"medium","line_start":188},{"id":"external_commands:SKILL.md:194:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `connection_string` | Application Insights connection string | From env var |","category":"external_commands","line_end":195,"severity":"medium","line_start":194},{"id":"external_commands:SKILL.md:195:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `credential` | Azure credential for AAD auth | None |","category":"external_commands","line_end":196,"severity":"medium","line_start":195},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `disable_offline_storage` | Disable retry storage | False |","category":"external_commands","line_end":197,"severity":"medium","line_start":196},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `storage_directory` | Custom storage path | Temp directory |","category":"external_commands","line_end":206,"severity":"medium","line_start":197},{"id":"network:SKILL.md:22:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applic","category":"network","line_end":22,"severity":"low","line_start":22},{"id":"network:SKILL.md:177:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"connection_string=\"InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure","category":"network","line_end":177,"severity":"low","line_start":177}],"finding_verdicts":[{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"Lines 15-17 are a fenced Bash installation example. The backticks delimit Markdown and do not execute a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"Line 17 closes the fenced installation example. It is Markdown syntax, not Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"Lines 21-23 form a fenced environment-variable example. The fence is documentation syntax and has no execution mechanism.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"Line 23 closes a Markdown code fence. No command substitution or executable Ruby code is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"Line 28 uses inline backticks to format a package name in a comparison table. It does not invoke that package.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","reason":"Line 29 formats the exporter package name as inline Markdown code. There is no shell or Ruby execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"Line 30 contains an inline package name in a Markdown table. The backticks are purely presentational.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"Line 34 opens a fenced Python example for trace exporter configuration. It is static documentation with no execution directive.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"Line 55 closes the trace exporter code fence. It is not a backtick command operator.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"Line 59 opens a fenced Python example for metric exporter configuration. Markdown does not execute the example.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","reason":"Line 78 closes the metric exporter example. The detected backticks are only a Markdown fence.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"Line 82 opens a fenced Python logging example. The skill presents code but contains no runner or command execution instruction.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"Line 106 closes the logging example. It is Markdown syntax rather than executable backtick syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"Line 110 formats an environment-variable name with inline Markdown code. It does not read or execute the variable itself.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"Line 112 starts a fenced Python example showing default exporter configuration. The fence has no command execution semantics.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"Line 117 closes a Python code fence. No shell interpolation or Ruby backtick operation occurs.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","reason":"Line 121 opens a fenced Python example for Azure AD authentication. It remains inert documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"Line 128 closes the authentication example. The detected backticks are a Markdown delimiter only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"Line 132 formats the ApplicationInsightsSampler class name as inline code. It does not invoke a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"Line 134 starts a fenced Python sampling example. There is no embedded shell or Ruby execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","reason":"Line 143 closes the sampling example. The fence is static Markdown syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","reason":"Line 149 opens a fenced Python offline-storage configuration example. Nothing in the skill executes this code automatically.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"Line 157 closes the offline-storage example. It is a Markdown fence, not a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"Line 161 opens a fenced Python example for disabling offline storage. The content is documentation and has no executor.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","reason":"Line 166 closes a Python code fence. No backtick-based command execution exists.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","reason":"Line 170 opens a fenced Python sovereign-cloud example. This delimiter does not execute the documented code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","reason":"Line 180 closes the sovereign-cloud example. It is inert Markdown syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","reason":"Line 186 formats a Python class name as inline code in a reference table. It does not call the class or a shell.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:187:ruby-shell-backtick-execution","reason":"Line 187 uses inline Markdown code for an exporter class name. No executable expression is present.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:188:ruby-shell-backtick-execution","reason":"Line 188 formats an exporter class name with inline backticks. This is reference documentation, not command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:194:ruby-shell-backtick-execution","reason":"Line 194 formats a configuration parameter name as inline code. The table does not evaluate the parameter.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:195:ruby-shell-backtick-execution","reason":"Line 195 uses inline Markdown code around a parameter name. It contains no shell or Ruby operation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","reason":"Line 196 formats the disable_offline_storage option as inline code. Backticks are presentational only.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","reason":"Line 197 formats the storage_directory option as inline code. The documentation does not execute filesystem or shell actions.","verdict":"false_positive","confidence":0.99},{"id":"network:SKILL.md:22:hardcoded-url","reason":"Line 22 shows a placeholder Azure Application Insights ingestion endpoint using xxx. It is configuration documentation, not an active network request.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:177:hardcoded-url","reason":"Line 177 uses a placeholder Azure Government Application Insights endpoint. The URL is expected product configuration and no request is made by the skill.","verdict":"false_positive","confidence":0.98}],"semantic_findings":[],"subject_marketplace_commit_sha":"f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526","subject_content_hash":"8e79104129fb4f166f5b344df01d5b3e3ada7fdbd0d86a3bdfdc5abfefae2cfa","subject_tree_hash":"c0bdd2746d3b98db5d6149c24f66630c791ff0559ae0993fe107cd3d30c9fdd6","subject_plugin_path":"skills/sickn33/azure-monitor-opentelemetry-exporter-py","audit_payload_hash":"1c98085c9a0537e562c9cb5b80d0466f","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526","contentHash":"8e79104129fb4f166f5b344df01d5b3e3ada7fdbd0d86a3bdfdc5abfefae2cfa","treeHash":"c0bdd2746d3b98db5d6149c24f66630c791ff0559ae0993fe107cd3d30c9fdd6","pluginPath":"skills/sickn33/azure-monitor-opentelemetry-exporter-py","auditPayloadHash":"1c98085c9a0537e562c9cb5b80d0466f"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/sickn33-azure-monitor-opentelemetry-exporter-py/audits/5/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}