[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XERTJZXKA3W0RP3TGTFCSA":3,"skill-same:01M6XERTJZXKA3W0RP3TGTFCSA":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":14,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M6XERTJZXKA3W0RP3TGTFCSA","azure-monitor-opentelemetry-exporter-java",null,"Azure Monitor OpenTelemetry Exporter for Java. Export OpenTelemetry traces, metrics, and logs to Azure Monitor\u002FApplication Insights.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fazure-monitor-opentelemetry-exporter-java\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"azure","azure monitor opentelemetry exporter java","monitor","java","OpenTelemetry","azure monitor","metrics","logs","export","community","application","insights","for","unknown","traces","2026","2026-11-10 10:12:30",false,"---\nname: azure-monitor-opentelemetry-exporter-java\ndescription: Azure Monitor OpenTelemetry Exporter for Java. Export OpenTelemetry traces, metrics, and logs to Azure Monitor\u002FApplication Insights.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure Monitor OpenTelemetry Exporter for Java\n\n> **⚠️ DEPRECATION NOTICE**: This package is deprecated. Migrate to `azure-monitor-opentelemetry-autoconfigure`.\n>\n> See [Migration Guide](https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter\u002FMIGRATION.md) for detailed instructions.\n\nExport OpenTelemetry telemetry data to Azure Monitor \u002F Application Insights.\n\n## Installation (Deprecated)\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-monitor-opentelemetry-exporter\u003C\u002FartifactId>\n    \u003Cversion>1.0.0-beta.x\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## Recommended: Use Autoconfigure Instead\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-monitor-opentelemetry-autoconfigure\u003C\u002FartifactId>\n    \u003Cversion>LATEST\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## Environment Variables\n\n```bash\nAPPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=xxx;IngestionEndpoint=https:\u002F\u002Fxxx.in.applicationinsights.azure.com\u002F\n```\n\n## Basic Setup with Autoconfigure (Recommended)\n\n### Using Environment Variable\n\n```java\nimport io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;\nimport io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;\nimport io.opentelemetry.api.OpenTelemetry;\nimport com.azure.monitor.opentelemetry.exporter.AzureMonitorExporter;\n\n\u002F\u002F Connection string from APPLICATIONINSIGHTS_CONNECTION_STRING env var\nAutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();\nAzureMonitorExporter.customize(sdkBuilder);\nOpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();\n```\n\n### With Explicit Connection String\n\n```java\nAutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();\nAzureMonitorExporter.customize(sdkBuilder, \"{connection-string}\");\nOpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();\n```\n\n## Creating Spans\n\n```java\nimport io.opentelemetry.api.trace.Tracer;\nimport io.opentelemetry.api.trace.Span;\nimport io.opentelemetry.context.Scope;\n\n\u002F\u002F Get tracer\nTracer tracer = openTelemetry.getTracer(\"com.example.myapp\");\n\n\u002F\u002F Create span\nSpan span = tracer.spanBuilder(\"myOperation\").startSpan();\n\ntry (Scope scope = span.makeCurrent()) {\n    \u002F\u002F Your application logic\n    doWork();\n} catch (Throwable t) {\n    span.recordException(t);\n    throw t;\n} finally {\n    span.end();\n}\n```\n\n## Adding Span Attributes\n\n```java\nimport io.opentelemetry.api.common.AttributeKey;\nimport io.opentelemetry.api.common.Attributes;\n\nSpan span = tracer.spanBuilder(\"processOrder\")\n    .setAttribute(\"order.id\", \"12345\")\n    .setAttribute(\"customer.tier\", \"premium\")\n    .startSpan();\n\ntry (Scope scope = span.makeCurrent()) {\n    \u002F\u002F Add attributes during execution\n    span.setAttribute(\"items.count\", 3);\n    span.setAttribute(\"total.amount\", 99.99);\n    \n    processOrder();\n} finally {\n    span.end();\n}\n```\n\n## Custom Span Processor\n\n```java\nimport io.opentelemetry.sdk.trace.SpanProcessor;\nimport io.opentelemetry.sdk.trace.ReadWriteSpan;\nimport io.opentelemetry.sdk.trace.ReadableSpan;\nimport io.opentelemetry.context.Context;\n\nprivate static final AttributeKey\u003CString> CUSTOM_ATTR = AttributeKey.stringKey(\"custom.attribute\");\n\nSpanProcessor customProcessor = new SpanProcessor() {\n    @Override\n    public void onStart(Context context, ReadWriteSpan span) {\n        \u002F\u002F Add custom attribute to every span\n        span.setAttribute(CUSTOM_ATTR, \"customValue\");\n    }\n\n    @Override\n    public boolean isStartRequired() {\n        return true;\n    }\n\n    @Override\n    public void onEnd(ReadableSpan span) {\n        \u002F\u002F Post-processing if needed\n    }\n\n    @Override\n    public boolean isEndRequired() {\n        return false;\n    }\n};\n\n\u002F\u002F Register processor\nAutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();\nAzureMonitorExporter.customize(sdkBuilder);\n\nsdkBuilder.addTracerProviderCustomizer(\n    (sdkTracerProviderBuilder, configProperties) -> \n        sdkTracerProviderBuilder.addSpanProcessor(customProcessor)\n);\n\nOpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();\n```\n\n## Nested Spans\n\n```java\npublic void parentOperation() {\n    Span parentSpan = tracer.spanBuilder(\"parentOperation\").startSpan();\n    try (Scope scope = parentSpan.makeCurrent()) {\n        childOperation();\n    } finally {\n        parentSpan.end();\n    }\n}\n\npublic void childOperation() {\n    \u002F\u002F Automatically links to parent via Context\n    Span childSpan = tracer.spanBuilder(\"childOperation\").startSpan();\n    try (Scope scope = childSpan.makeCurrent()) {\n        \u002F\u002F Child work\n    } finally {\n        childSpan.end();\n    }\n}\n```\n\n## Recording Exceptions\n\n```java\nSpan span = tracer.spanBuilder(\"riskyOperation\").startSpan();\ntry (Scope scope = span.makeCurrent()) {\n    performRiskyWork();\n} catch (Exception e) {\n    span.recordException(e);\n    span.setStatus(StatusCode.ERROR, e.getMessage());\n    throw e;\n} finally {\n    span.end();\n}\n```\n\n## Metrics (via OpenTelemetry)\n\n```java\nimport io.opentelemetry.api.metrics.Meter;\nimport io.opentelemetry.api.metrics.LongCounter;\nimport io.opentelemetry.api.metrics.LongHistogram;\n\nMeter meter = openTelemetry.getMeter(\"com.example.myapp\");\n\n\u002F\u002F Counter\nLongCounter requestCounter = meter.counterBuilder(\"http.requests\")\n    .setDescription(\"Total HTTP requests\")\n    .setUnit(\"requests\")\n    .build();\n\nrequestCounter.add(1, Attributes.of(\n    AttributeKey.stringKey(\"http.method\"), \"GET\",\n    AttributeKey.longKey(\"http.status_code\"), 200L\n));\n\n\u002F\u002F Histogram\nLongHistogram latencyHistogram = meter.histogramBuilder(\"http.latency\")\n    .setDescription(\"Request latency\")\n    .setUnit(\"ms\")\n    .ofLongs()\n    .build();\n\nlatencyHistogram.record(150, Attributes.of(\n    AttributeKey.stringKey(\"http.route\"), \"\u002Fapi\u002Fusers\"\n));\n```\n\n## Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| Connection String | Application Insights connection string with instrumentation key |\n| Tracer | Creates spans for distributed tracing |\n| Span | Represents a unit of work with timing and attributes |\n| SpanProcessor | Intercepts span lifecycle for customization |\n| Exporter | Sends telemetry to Azure Monitor |\n\n## Migration to Autoconfigure\n\nThe `azure-monitor-opentelemetry-autoconfigure` package provides:\n- Automatic instrumentation of common libraries\n- Simplified configuration\n- Better integration with OpenTelemetry SDK\n\n### Migration Steps\n\n1. Replace dependency:\n   ```xml\n   \u003C!-- Remove -->\n   \u003Cdependency>\n       \u003CgroupId>com.azure\u003C\u002FgroupId>\n       \u003CartifactId>azure-monitor-opentelemetry-exporter\u003C\u002FartifactId>\n   \u003C\u002Fdependency>\n   \n   \u003C!-- Add -->\n   \u003Cdependency>\n       \u003CgroupId>com.azure\u003C\u002FgroupId>\n       \u003CartifactId>azure-monitor-opentelemetry-autoconfigure\u003C\u002FartifactId>\n   \u003C\u002Fdependency>\n   ```\n\n2. Update initialization code per [Migration Guide](https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter\u002FMIGRATION.md)\n\n## Best Practices\n\n1. **Use autoconfigure** — Migrate to `azure-monitor-opentelemetry-autoconfigure`\n2. **Set meaningful span names** — Use descriptive operation names\n3. **Add relevant attributes** — Include contextual data for debugging\n4. **Handle exceptions** — Always record exceptions on spans\n5. **Use semantic conventions** — Follow OpenTelemetry semantic conventions\n6. **End spans in finally** — Ensure spans are always ended\n7. **Use try-with-resources** — Scope management with try-with-resources pattern\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Maven Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-monitor-opentelemetry-exporter |\n| GitHub | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter |\n| Migration Guide | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter\u002FMIGRATION.md |\n| Autoconfigure Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-monitor-opentelemetry-autoconfigure |\n| OpenTelemetry Java | https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Flanguages\u002Fjava\u002F |\n| Application Insights | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fapp\u002Fapp-insights-overview |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure Monitor OpenTelemetry Exporter for Java\n\n> **⚠️ DEPRECATION NOTICE**: This package is deprecated. Migrate to `azure-monitor-opentelemetry-autoconfigure`.\n>\n> See [Migration Guide](https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter\u002FMIGRATION.md) for detailed instructions.\n\nExport OpenTelemetry telemetry data to Azure Monitor \u002F Application Insights.\n\n## Installation (Deprecated)\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-monitor-opentelemetry-exporter\u003C\u002FartifactId>\n    \u003Cversion>1.0.0-beta.x\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## Recommended: Use Autoconfigure Instead\n\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.azure\u003C\u002FgroupId>\n    \u003CartifactId>azure-monitor-opentelemetry-autoconfigure\u003C\u002FartifactId>\n    \u003Cversion>LATEST\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## Environment Variables\n\n```bash\nAPPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=xxx;IngestionEndpoint=https:\u002F\u002Fxxx.in.applicationinsights.azure.com\u002F\n```\n\n## Basic Setup with Autoconfigure (Recommended)\n\n### Using Environment Variable\n\n```java\nimport io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;\nimport io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;\nimport io.opentelemetry.api.OpenTelemetry;\nimport com.azure.monitor.opentelemetry.exporter.AzureMonitorExporter;\n\n\u002F\u002F Connection string from APPLICATIONINSIGHTS_CONNECTION_STRING env var\nAutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();\nAzureMonitorExporter.customize(sdkBuilder);\nOpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();\n```\n\n### With Explicit Connection String\n\n```java\nAutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();\nAzureMonitorExporter.customize(sdkBuilder, \"{connection-string}\");\nOpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();\n```\n\n## Creating Spans\n\n```java\nimport io.opentelemetry.api.trace.Tracer;\nimport io.opentelemetry.api.trace.Span;\nimport io.opentelemetry.context.Scope;\n\n\u002F\u002F Get tracer\nTracer tracer = openTelemetry.getTracer(\"com.example.myapp\");\n\n\u002F\u002F Create span\nSpan span = tracer.spanBuilder(\"myOperation\").startSpan();\n\ntry (Scope scope = span.makeCurrent()) {\n    \u002F\u002F Your application logic\n    doWork();\n} catch (Throwable t) {\n    span.recordException(t);\n    throw t;\n} finally {\n    span.end();\n}\n```\n\n## Adding Span Attributes\n\n```java\nimport io.opentelemetry.api.common.AttributeKey;\nimport io.opentelemetry.api.common.Attributes;\n\nSpan span = tracer.spanBuilder(\"processOrder\")\n    .setAttribute(\"order.id\", \"12345\")\n    .setAttribute(\"customer.tier\", \"premium\")\n    .startSpan();\n\ntry (Scope scope = span.makeCurrent()) {\n    \u002F\u002F Add attributes during execution\n    span.setAttribute(\"items.count\", 3);\n    span.setAttribute(\"total.amount\", 99.99);\n    \n    processOrder();\n} finally {\n    span.end();\n}\n```\n\n## Custom Span Processor\n\n```java\nimport io.opentelemetry.sdk.trace.SpanProcessor;\nimport io.opentelemetry.sdk.trace.ReadWriteSpan;\nimport io.opentelemetry.sdk.trace.ReadableSpan;\nimport io.opentelemetry.context.Context;\n\nprivate static final AttributeKey\u003CString> CUSTOM_ATTR = AttributeKey.stringKey(\"custom.attribute\");\n\nSpanProcessor customProcessor = new SpanProcessor() {\n    @Override\n    public void onStart(Context context, ReadWriteSpan span) {\n        \u002F\u002F Add custom attribute to every span\n        span.setAttribute(CUSTOM_ATTR, \"customValue\");\n    }\n\n    @Override\n    public boolean isStartRequired() {\n        return true;\n    }\n\n    @Override\n    public void onEnd(ReadableSpan span) {\n        \u002F\u002F Post-processing if needed\n    }\n\n    @Override\n    public boolean isEndRequired() {\n        return false;\n    }\n};\n\n\u002F\u002F Register processor\nAutoConfiguredOpenTelemetrySdkBuilder sdkBuilder = AutoConfiguredOpenTelemetrySdk.builder();\nAzureMonitorExporter.customize(sdkBuilder);\n\nsdkBuilder.addTracerProviderCustomizer(\n    (sdkTracerProviderBuilder, configProperties) -> \n        sdkTracerProviderBuilder.addSpanProcessor(customProcessor)\n);\n\nOpenTelemetry openTelemetry = sdkBuilder.build().getOpenTelemetrySdk();\n```\n\n## Nested Spans\n\n```java\npublic void parentOperation() {\n    Span parentSpan = tracer.spanBuilder(\"parentOperation\").startSpan();\n    try (Scope scope = parentSpan.makeCurrent()) {\n        childOperation();\n    } finally {\n        parentSpan.end();\n    }\n}\n\npublic void childOperation() {\n    \u002F\u002F Automatically links to parent via Context\n    Span childSpan = tracer.spanBuilder(\"childOperation\").startSpan();\n    try (Scope scope = childSpan.makeCurrent()) {\n        \u002F\u002F Child work\n    } finally {\n        childSpan.end();\n    }\n}\n```\n\n## Recording Exceptions\n\n```java\nSpan span = tracer.spanBuilder(\"riskyOperation\").startSpan();\ntry (Scope scope = span.makeCurrent()) {\n    performRiskyWork();\n} catch (Exception e) {\n    span.recordException(e);\n    span.setStatus(StatusCode.ERROR, e.getMessage());\n    throw e;\n} finally {\n    span.end();\n}\n```\n\n## Metrics (via OpenTelemetry)\n\n```java\nimport io.opentelemetry.api.metrics.Meter;\nimport io.opentelemetry.api.metrics.LongCounter;\nimport io.opentelemetry.api.metrics.LongHistogram;\n\nMeter meter = openTelemetry.getMeter(\"com.example.myapp\");\n\n\u002F\u002F Counter\nLongCounter requestCounter = meter.counterBuilder(\"http.requests\")\n    .setDescription(\"Total HTTP requests\")\n    .setUnit(\"requests\")\n    .build();\n\nrequestCounter.add(1, Attributes.of(\n    AttributeKey.stringKey(\"http.method\"), \"GET\",\n    AttributeKey.longKey(\"http.status_code\"), 200L\n));\n\n\u002F\u002F Histogram\nLongHistogram latencyHistogram = meter.histogramBuilder(\"http.latency\")\n    .setDescription(\"Request latency\")\n    .setUnit(\"ms\")\n    .ofLongs()\n    .build();\n\nlatencyHistogram.record(150, Attributes.of(\n    AttributeKey.stringKey(\"http.route\"), \"\u002Fapi\u002Fusers\"\n));\n```\n\n## Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| Connection String | Application Insights connection string with instrumentation key |\n| Tracer | Creates spans for distributed tracing |\n| Span | Represents a unit of work with timing and attributes |\n| SpanProcessor | Intercepts span lifecycle for customization |\n| Exporter | Sends telemetry to Azure Monitor |\n\n## Migration to Autoconfigure\n\nThe `azure-monitor-opentelemetry-autoconfigure` package provides:\n- Automatic instrumentation of common libraries\n- Simplified configuration\n- Better integration with OpenTelemetry SDK\n\n### Migration Steps\n\n1. Replace dependency:\n   ```xml\n   \u003C!-- Remove -->\n   \u003Cdependency>\n       \u003CgroupId>com.azure\u003C\u002FgroupId>\n       \u003CartifactId>azure-monitor-opentelemetry-exporter\u003C\u002FartifactId>\n   \u003C\u002Fdependency>\n   \n   \u003C!-- Add -->\n   \u003Cdependency>\n       \u003CgroupId>com.azure\u003C\u002FgroupId>\n       \u003CartifactId>azure-monitor-opentelemetry-autoconfigure\u003C\u002FartifactId>\n   \u003C\u002Fdependency>\n   ```\n\n2. Update initialization code per [Migration Guide](https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter\u002FMIGRATION.md)\n\n## Best Practices\n\n1. **Use autoconfigure** — Migrate to `azure-monitor-opentelemetry-autoconfigure`\n2. **Set meaningful span names** — Use descriptive operation names\n3. **Add relevant attributes** — Include contextual data for debugging\n4. **Handle exceptions** — Always record exceptions on spans\n5. **Use semantic conventions** — Follow OpenTelemetry semantic conventions\n6. **End spans in finally** — Ensure spans are always ended\n7. **Use try-with-resources** — Scope management with try-with-resources pattern\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| Maven Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-monitor-opentelemetry-exporter |\n| GitHub | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Ftree\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter |\n| Migration Guide | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-java\u002Fblob\u002Fmain\u002Fsdk\u002Fmonitor\u002Fazure-monitor-opentelemetry-exporter\u002FMIGRATION.md |\n| Autoconfigure Package | https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.azure\u002Fazure-monitor-opentelemetry-autoconfigure |\n| OpenTelemetry Java | https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Flanguages\u002Fjava\u002F |\n| Application Insights | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fapp\u002Fapp-insights-overview |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":32,"source":28,"date_added":40,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fazure-monitor-opentelemetry-exporter-java","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill azure-monitor-opentelemetry-exporter-java",{"tool":53,"command":54},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill azure-monitor-opentelemetry-exporter-java",{"tool":56,"command":57},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill azure-monitor-opentelemetry-exporter-java","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fazure-monitor-opentelemetry-exporter-java\u002FSKILL.md",true,[],[62,86,112,122,135,154],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":73,"publishedAt":35},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[68],{"categoryNo":69,"categoryName":70,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[74,75,76,77,78,79,80,81,82,83,84,85],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":35},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[93,94,95,96,97,98,76,99,100,101,102,103,104,105,106,107,108,109,110,111],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":35},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[119,120,93,104,105,106,107,97,76,109,121,110,111,103,101,100,99,108,98,96],"trend radar","radar","pulse",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":35},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[129,130,131,132,133,134],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":146,"publishedAt":35},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":144,"taxonomyTypeDesc":145},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[137,82,147,148,149,85,104,150,151,152,95,153,108],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":35},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[156,161,162,163,108,164,151,165,166,167,168,169],"status","play","go","latest","github","discover","control","cmd","volume"]