[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PAHXCGPPTA1EB3A1FWZ2CX":3,"skill-same:01M6PAHXCGPPTA1EB3A1FWZ2CX":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":33,"commitSha":60,"skillDirectory":61,"forksCount":13,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M6PAHXCGPPTA1EB3A1FWZ2CX","new-relic",null,"Configure New Relic observability platform for infrastructure and application monitoring.","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fnew-relic\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"new relic","only","for","relevant","scripts","critical","platform","main","observability platform","community","security","configure","access","devops-security","kubectl","ci","monitoring","observability","git","infrastructure","2026-11-10 10:12:30",false,"---\nname: new-relic\ndescription: Configure New Relic observability platform for infrastructure and application\n  monitoring.\ncategory: devops\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\nsource_repo: BagelHole\u002FDevOps-Security-Agent-Skills\nsource_type: community\ndate_added: '2026-09-20'\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\u002Fblob\u002Fmain\u002FLICENSE\ncompatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,\n  CI runners) and authorized access to the target environment. Docs-only; helper scripts\n  and templates not bundled.\nmetadata:\n  author: devops-skills\n  version: '1.0'\n---\n\n# New Relic\n\nMonitor applications and infrastructure with New Relic's observability platform.\n\n## When to Use This Skill\n\nUse this skill when:\n- Implementing full-stack observability\n- Setting up APM for applications\n- Monitoring infrastructure health\n- Creating custom dashboards and alerts\n- Implementing distributed tracing\n\n## Prerequisites\n\n- New Relic account and license key\n- Application access for APM agents\n- Infrastructure access for host agents\n\n## Infrastructure Agent\n\n### Linux Installation\n\n```bash\n# Add repository and install\ncurl -Ls https:\u002F\u002Fdownload.newrelic.com\u002Finstall\u002Fnewrelic-cli\u002Fscripts\u002Finstall.sh | bash \u003C!-- security-allowlist: curl-pipe-bash -->\n\n# Configure license key\nsudo NEW_RELIC_API_KEY=\u003CYOUR_API_KEY> NEW_RELIC_ACCOUNT_ID=\u003CACCOUNT_ID> \u002Fusr\u002Flocal\u002Fbin\u002Fnewrelic install\n\n# Or manual configuration\necho \"license_key: YOUR_LICENSE_KEY\" | sudo tee -a \u002Fetc\u002Fnewrelic-infra.yml\nsudo systemctl start newrelic-infra\n```\n\n### Docker\n\n```yaml\n# docker-compose.yml\nversion: '3.8'\n\nservices:\n  newrelic-infra:\n    image: newrelic\u002Finfrastructure:latest\n    cap_add:\n      - SYS_PTRACE\n    privileged: true\n    pid: \"host\"\n    network_mode: \"host\"\n    environment:\n      - NRIA_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY}\n      - NRIA_DISPLAY_NAME=docker-host\n    volumes:\n      - \u002F:\u002Fhost:ro\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n```\n\n### Kubernetes\n\n```bash\n# Using Helm\nhelm repo add newrelic https:\u002F\u002Fhelm-charts.newrelic.com\n\nhelm install newrelic-bundle newrelic\u002Fnri-bundle \\\n  --namespace newrelic \\\n  --create-namespace \\\n  --set global.licenseKey=${NEW_RELIC_LICENSE_KEY} \\\n  --set global.cluster=my-cluster \\\n  --set newrelic-infrastructure.privileged=true \\\n  --set ksm.enabled=true \\\n  --set kubeEvents.enabled=true \\\n  --set logging.enabled=true\n```\n\n## APM Agents\n\n### Node.js\n\n```javascript\n\u002F\u002F At the very start of your application\nrequire('newrelic');\n\n\u002F\u002F newrelic.js configuration\nexports.config = {\n  app_name: ['My Application'],\n  license_key: process.env.NEW_RELIC_LICENSE_KEY,\n  distributed_tracing: {\n    enabled: true\n  },\n  logging: {\n    level: 'info'\n  },\n  error_collector: {\n    enabled: true,\n    ignore_status_codes: [404]\n  },\n  transaction_tracer: {\n    enabled: true,\n    transaction_threshold: 'apdex_f',\n    record_sql: 'obfuscated'\n  }\n};\n```\n\n```bash\n# Install agent\nnpm install newrelic\n\n# Run application\nNEW_RELIC_LICENSE_KEY=xxx node -r newrelic app.js\n```\n\n### Python\n\n```python\n# newrelic.ini\n[newrelic]\nlicense_key = YOUR_LICENSE_KEY\napp_name = My Application\ndistributed_tracing.enabled = true\ntransaction_tracer.enabled = true\nerror_collector.enabled = true\nbrowser_monitoring.auto_instrument = true\n```\n\n```bash\n# Install agent\npip install newrelic\n\n# Generate config file\nnewrelic-admin generate-config YOUR_LICENSE_KEY newrelic.ini\n\n# Run application\nNEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program python app.py\n\n# Or with gunicorn\nNEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn app:app\n```\n\n### Java\n\n```bash\n# Download agent\ncurl -O https:\u002F\u002Fdownload.newrelic.com\u002Fnewrelic\u002Fjava-agent\u002Fnewrelic-agent\u002Fcurrent\u002Fnewrelic-java.zip\nunzip newrelic-java.zip\n\n# Configure newrelic.yml\n# license_key: YOUR_LICENSE_KEY\n# app_name: My Application\n\n# Run with agent\njava -javaagent:\u002Fpath\u002Fto\u002Fnewrelic.jar -jar myapp.jar\n```\n\n### Go\n\n```go\npackage main\n\nimport (\n    \"github.com\u002Fnewrelic\u002Fgo-agent\u002Fv3\u002Fnewrelic\"\n    \"net\u002Fhttp\"\n)\n\nfunc main() {\n    app, err := newrelic.NewApplication(\n        newrelic.ConfigAppName(\"My Application\"),\n        newrelic.ConfigLicense(\"YOUR_LICENSE_KEY\"),\n        newrelic.ConfigDistributedTracerEnabled(true),\n    )\n    if err != nil {\n        panic(err)\n    }\n\n    http.HandleFunc(newrelic.WrapHandleFunc(app, \"\u002F\", indexHandler))\n    http.ListenAndServe(\":8080\", nil)\n}\n\nfunc indexHandler(w http.ResponseWriter, r *http.Request) {\n    txn := newrelic.FromContext(r.Context())\n    txn.AddAttribute(\"user_id\", \"12345\")\n    w.Write([]byte(\"Hello, World!\"))\n}\n```\n\n## Custom Instrumentation\n\n### Custom Events\n\n```python\nimport newrelic.agent\n\n# Record custom event\nnewrelic.agent.record_custom_event('OrderPlaced', {\n    'order_id': '12345',\n    'amount': 99.99,\n    'customer_id': 'cust_001'\n})\n```\n\n### Custom Metrics\n\n```python\nimport newrelic.agent\n\n# Record custom metric\nnewrelic.agent.record_custom_metric('Custom\u002FOrderValue', 99.99)\n\n# With attributes\nnewrelic.agent.record_custom_metric('Custom\u002FProcessingTime', \n    processing_time, \n    {'unit': 'milliseconds'}\n)\n```\n\n### Custom Spans\n\n```python\nimport newrelic.agent\n\n@newrelic.agent.function_trace(name='process_payment')\ndef process_payment(order_id, amount):\n    # This creates a custom span in the trace\n    pass\n\n# Manual span creation\nwith newrelic.agent.FunctionTrace(name='custom_operation'):\n    # Traced code\n    pass\n```\n\n## NRQL Queries\n\n### Basic Queries\n\n```sql\n-- Transaction throughput\nSELECT rate(count(*), 1 minute) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n\n-- Average response time\nSELECT average(duration) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n\n-- Error rate\nSELECT percentage(count(*), WHERE error IS true) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n\n-- Apdex score\nSELECT apdex(duration, t: 0.5) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n```\n\n### Advanced Queries\n\n```sql\n-- Slowest transactions\nSELECT average(duration) FROM Transaction \nWHERE appName = 'My Application' \nFACET name \nSINCE 1 hour ago \nORDER BY average(duration) DESC \nLIMIT 10\n\n-- Error breakdown\nSELECT count(*) FROM TransactionError \nWHERE appName = 'My Application' \nFACET error.class \nSINCE 1 hour ago\n\n-- Percentile response times\nSELECT percentile(duration, 50, 90, 95, 99) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago TIMESERIES\n\n-- Custom event analysis\nSELECT average(amount), count(*) FROM OrderPlaced \nFACET customer_id \nSINCE 1 day ago\n```\n\n## Dashboards\n\n### Dashboard JSON\n\n```json\n{\n  \"name\": \"Application Dashboard\",\n  \"pages\": [\n    {\n      \"name\": \"Overview\",\n      \"widgets\": [\n        {\n          \"title\": \"Throughput\",\n          \"visualization\": {\"id\": \"viz.line\"},\n          \"configuration\": {\n            \"nrqlQueries\": [\n              {\n                \"accountId\": 12345,\n                \"query\": \"SELECT rate(count(*), 1 minute) FROM Transaction WHERE appName = 'My Application' SINCE 1 hour ago TIMESERIES\"\n              }\n            ]\n          }\n        },\n        {\n          \"title\": \"Error Rate\",\n          \"visualization\": {\"id\": \"viz.billboard\"},\n          \"configuration\": {\n            \"nrqlQueries\": [\n              {\n                \"accountId\": 12345,\n                \"query\": \"SELECT percentage(count(*), WHERE error IS true) FROM Transaction WHERE appName = 'My Application' SINCE 1 hour ago\"\n              }\n            ]\n          }\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Alerts\n\n### Alert Condition (NRQL)\n\n```json\n{\n  \"name\": \"High Error Rate\",\n  \"type\": \"static\",\n  \"nrql\": {\n    \"query\": \"SELECT percentage(count(*), WHERE error IS true) FROM Transaction WHERE appName = 'My Application'\"\n  },\n  \"valueFunction\": \"single_value\",\n  \"terms\": [\n    {\n      \"threshold\": 5,\n      \"thresholdOccurrences\": \"all\",\n      \"thresholdDuration\": 300,\n      \"operator\": \"above\",\n      \"priority\": \"critical\"\n    },\n    {\n      \"threshold\": 2,\n      \"thresholdOccurrences\": \"all\",\n      \"thresholdDuration\": 300,\n      \"operator\": \"above\",\n      \"priority\": \"warning\"\n    }\n  ]\n}\n```\n\n### Alert Policy\n\n```json\n{\n  \"name\": \"Application Alerts\",\n  \"incident_preference\": \"PER_CONDITION_AND_TARGET\",\n  \"conditions\": [\n    {\n      \"name\": \"High Response Time\",\n      \"type\": \"apm_app_metric\",\n      \"entities\": [\"My Application\"],\n      \"metric\": \"response_time_web\",\n      \"condition_scope\": \"application\",\n      \"terms\": [\n        {\n          \"duration\": \"5\",\n          \"operator\": \"above\",\n          \"threshold\": \"1\",\n          \"priority\": \"critical\"\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Logs in Context\n\n### Python Configuration\n\n```python\n# newrelic.ini\n[newrelic]\napplication_logging.enabled = true\napplication_logging.forwarding.enabled = true\napplication_logging.metrics.enabled = true\napplication_logging.local_decorating.enabled = true\n```\n\n### Log Forwarding\n\n```yaml\n# newrelic-infra.yml\nlog:\n  - name: application-logs\n    file: \u002Fvar\u002Flog\u002Fmyapp\u002F*.log\n    attributes:\n      service: myapp\n      environment: production\n```\n\n## Common Issues\n\n### Issue: No Data Appearing\n**Problem**: Agent not reporting to New Relic\n**Solution**: Verify license key, check network connectivity, review agent logs\n\n### Issue: Missing Transactions\n**Problem**: Some transactions not captured\n**Solution**: Check instrumentation coverage, verify framework support\n\n### Issue: High Overhead\n**Problem**: APM agent impacting performance\n**Solution**: Adjust sampling rate, disable unnecessary features\n\n## Best Practices\n\n- Use meaningful application names\n- Implement distributed tracing across services\n- Set up service maps for dependency visualization\n- Configure appropriate alert thresholds\n- Use custom attributes for business context\n- Implement logs in context for correlation\n- Set up workloads for service grouping\n- Regular review of unused dashboards and alerts\n\n## Related Skills\n\n- datadog (`datadog`) - Alternative monitoring platform\n- prometheus-grafana (`prometheus-grafana`) - Open source monitoring\n- alerting-oncall (`alerting-oncall`) - Alert management\n\n## Limitations\n\n- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.\n- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.\n\n### Example\n\n```bash\ngit status && git diff --stat\nkubectl diff -f manifest.yaml\n```\n\n> Adapted from [BagelHole\u002FDevOps-Security-Agent-Skills](https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use\u002FLimitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.\n","# New Relic\n\nMonitor applications and infrastructure with New Relic's observability platform.\n\n## When to Use This Skill\n\nUse this skill when:\n- Implementing full-stack observability\n- Setting up APM for applications\n- Monitoring infrastructure health\n- Creating custom dashboards and alerts\n- Implementing distributed tracing\n\n## Prerequisites\n\n- New Relic account and license key\n- Application access for APM agents\n- Infrastructure access for host agents\n\n## Infrastructure Agent\n\n### Linux Installation\n\n```bash\n# Add repository and install\ncurl -Ls https:\u002F\u002Fdownload.newrelic.com\u002Finstall\u002Fnewrelic-cli\u002Fscripts\u002Finstall.sh | bash \u003C!-- security-allowlist: curl-pipe-bash -->\n\n# Configure license key\nsudo NEW_RELIC_API_KEY=\u003CYOUR_API_KEY> NEW_RELIC_ACCOUNT_ID=\u003CACCOUNT_ID> \u002Fusr\u002Flocal\u002Fbin\u002Fnewrelic install\n\n# Or manual configuration\necho \"license_key: YOUR_LICENSE_KEY\" | sudo tee -a \u002Fetc\u002Fnewrelic-infra.yml\nsudo systemctl start newrelic-infra\n```\n\n### Docker\n\n```yaml\n# docker-compose.yml\nversion: '3.8'\n\nservices:\n  newrelic-infra:\n    image: newrelic\u002Finfrastructure:latest\n    cap_add:\n      - SYS_PTRACE\n    privileged: true\n    pid: \"host\"\n    network_mode: \"host\"\n    environment:\n      - NRIA_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY}\n      - NRIA_DISPLAY_NAME=docker-host\n    volumes:\n      - \u002F:\u002Fhost:ro\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n```\n\n### Kubernetes\n\n```bash\n# Using Helm\nhelm repo add newrelic https:\u002F\u002Fhelm-charts.newrelic.com\n\nhelm install newrelic-bundle newrelic\u002Fnri-bundle \\\n  --namespace newrelic \\\n  --create-namespace \\\n  --set global.licenseKey=${NEW_RELIC_LICENSE_KEY} \\\n  --set global.cluster=my-cluster \\\n  --set newrelic-infrastructure.privileged=true \\\n  --set ksm.enabled=true \\\n  --set kubeEvents.enabled=true \\\n  --set logging.enabled=true\n```\n\n## APM Agents\n\n### Node.js\n\n```javascript\n\u002F\u002F At the very start of your application\nrequire('newrelic');\n\n\u002F\u002F newrelic.js configuration\nexports.config = {\n  app_name: ['My Application'],\n  license_key: process.env.NEW_RELIC_LICENSE_KEY,\n  distributed_tracing: {\n    enabled: true\n  },\n  logging: {\n    level: 'info'\n  },\n  error_collector: {\n    enabled: true,\n    ignore_status_codes: [404]\n  },\n  transaction_tracer: {\n    enabled: true,\n    transaction_threshold: 'apdex_f',\n    record_sql: 'obfuscated'\n  }\n};\n```\n\n```bash\n# Install agent\nnpm install newrelic\n\n# Run application\nNEW_RELIC_LICENSE_KEY=xxx node -r newrelic app.js\n```\n\n### Python\n\n```python\n# newrelic.ini\n[newrelic]\nlicense_key = YOUR_LICENSE_KEY\napp_name = My Application\ndistributed_tracing.enabled = true\ntransaction_tracer.enabled = true\nerror_collector.enabled = true\nbrowser_monitoring.auto_instrument = true\n```\n\n```bash\n# Install agent\npip install newrelic\n\n# Generate config file\nnewrelic-admin generate-config YOUR_LICENSE_KEY newrelic.ini\n\n# Run application\nNEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program python app.py\n\n# Or with gunicorn\nNEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn app:app\n```\n\n### Java\n\n```bash\n# Download agent\ncurl -O https:\u002F\u002Fdownload.newrelic.com\u002Fnewrelic\u002Fjava-agent\u002Fnewrelic-agent\u002Fcurrent\u002Fnewrelic-java.zip\nunzip newrelic-java.zip\n\n# Configure newrelic.yml\n# license_key: YOUR_LICENSE_KEY\n# app_name: My Application\n\n# Run with agent\njava -javaagent:\u002Fpath\u002Fto\u002Fnewrelic.jar -jar myapp.jar\n```\n\n### Go\n\n```go\npackage main\n\nimport (\n    \"github.com\u002Fnewrelic\u002Fgo-agent\u002Fv3\u002Fnewrelic\"\n    \"net\u002Fhttp\"\n)\n\nfunc main() {\n    app, err := newrelic.NewApplication(\n        newrelic.ConfigAppName(\"My Application\"),\n        newrelic.ConfigLicense(\"YOUR_LICENSE_KEY\"),\n        newrelic.ConfigDistributedTracerEnabled(true),\n    )\n    if err != nil {\n        panic(err)\n    }\n\n    http.HandleFunc(newrelic.WrapHandleFunc(app, \"\u002F\", indexHandler))\n    http.ListenAndServe(\":8080\", nil)\n}\n\nfunc indexHandler(w http.ResponseWriter, r *http.Request) {\n    txn := newrelic.FromContext(r.Context())\n    txn.AddAttribute(\"user_id\", \"12345\")\n    w.Write([]byte(\"Hello, World!\"))\n}\n```\n\n## Custom Instrumentation\n\n### Custom Events\n\n```python\nimport newrelic.agent\n\n# Record custom event\nnewrelic.agent.record_custom_event('OrderPlaced', {\n    'order_id': '12345',\n    'amount': 99.99,\n    'customer_id': 'cust_001'\n})\n```\n\n### Custom Metrics\n\n```python\nimport newrelic.agent\n\n# Record custom metric\nnewrelic.agent.record_custom_metric('Custom\u002FOrderValue', 99.99)\n\n# With attributes\nnewrelic.agent.record_custom_metric('Custom\u002FProcessingTime', \n    processing_time, \n    {'unit': 'milliseconds'}\n)\n```\n\n### Custom Spans\n\n```python\nimport newrelic.agent\n\n@newrelic.agent.function_trace(name='process_payment')\ndef process_payment(order_id, amount):\n    # This creates a custom span in the trace\n    pass\n\n# Manual span creation\nwith newrelic.agent.FunctionTrace(name='custom_operation'):\n    # Traced code\n    pass\n```\n\n## NRQL Queries\n\n### Basic Queries\n\n```sql\n-- Transaction throughput\nSELECT rate(count(*), 1 minute) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n\n-- Average response time\nSELECT average(duration) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n\n-- Error rate\nSELECT percentage(count(*), WHERE error IS true) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n\n-- Apdex score\nSELECT apdex(duration, t: 0.5) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago\n```\n\n### Advanced Queries\n\n```sql\n-- Slowest transactions\nSELECT average(duration) FROM Transaction \nWHERE appName = 'My Application' \nFACET name \nSINCE 1 hour ago \nORDER BY average(duration) DESC \nLIMIT 10\n\n-- Error breakdown\nSELECT count(*) FROM TransactionError \nWHERE appName = 'My Application' \nFACET error.class \nSINCE 1 hour ago\n\n-- Percentile response times\nSELECT percentile(duration, 50, 90, 95, 99) FROM Transaction \nWHERE appName = 'My Application' \nSINCE 1 hour ago TIMESERIES\n\n-- Custom event analysis\nSELECT average(amount), count(*) FROM OrderPlaced \nFACET customer_id \nSINCE 1 day ago\n```\n\n## Dashboards\n\n### Dashboard JSON\n\n```json\n{\n  \"name\": \"Application Dashboard\",\n  \"pages\": [\n    {\n      \"name\": \"Overview\",\n      \"widgets\": [\n        {\n          \"title\": \"Throughput\",\n          \"visualization\": {\"id\": \"viz.line\"},\n          \"configuration\": {\n            \"nrqlQueries\": [\n              {\n                \"accountId\": 12345,\n                \"query\": \"SELECT rate(count(*), 1 minute) FROM Transaction WHERE appName = 'My Application' SINCE 1 hour ago TIMESERIES\"\n              }\n            ]\n          }\n        },\n        {\n          \"title\": \"Error Rate\",\n          \"visualization\": {\"id\": \"viz.billboard\"},\n          \"configuration\": {\n            \"nrqlQueries\": [\n              {\n                \"accountId\": 12345,\n                \"query\": \"SELECT percentage(count(*), WHERE error IS true) FROM Transaction WHERE appName = 'My Application' SINCE 1 hour ago\"\n              }\n            ]\n          }\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Alerts\n\n### Alert Condition (NRQL)\n\n```json\n{\n  \"name\": \"High Error Rate\",\n  \"type\": \"static\",\n  \"nrql\": {\n    \"query\": \"SELECT percentage(count(*), WHERE error IS true) FROM Transaction WHERE appName = 'My Application'\"\n  },\n  \"valueFunction\": \"single_value\",\n  \"terms\": [\n    {\n      \"threshold\": 5,\n      \"thresholdOccurrences\": \"all\",\n      \"thresholdDuration\": 300,\n      \"operator\": \"above\",\n      \"priority\": \"critical\"\n    },\n    {\n      \"threshold\": 2,\n      \"thresholdOccurrences\": \"all\",\n      \"thresholdDuration\": 300,\n      \"operator\": \"above\",\n      \"priority\": \"warning\"\n    }\n  ]\n}\n```\n\n### Alert Policy\n\n```json\n{\n  \"name\": \"Application Alerts\",\n  \"incident_preference\": \"PER_CONDITION_AND_TARGET\",\n  \"conditions\": [\n    {\n      \"name\": \"High Response Time\",\n      \"type\": \"apm_app_metric\",\n      \"entities\": [\"My Application\"],\n      \"metric\": \"response_time_web\",\n      \"condition_scope\": \"application\",\n      \"terms\": [\n        {\n          \"duration\": \"5\",\n          \"operator\": \"above\",\n          \"threshold\": \"1\",\n          \"priority\": \"critical\"\n        }\n      ]\n    }\n  ]\n}\n```\n\n## Logs in Context\n\n### Python Configuration\n\n```python\n# newrelic.ini\n[newrelic]\napplication_logging.enabled = true\napplication_logging.forwarding.enabled = true\napplication_logging.metrics.enabled = true\napplication_logging.local_decorating.enabled = true\n```\n\n### Log Forwarding\n\n```yaml\n# newrelic-infra.yml\nlog:\n  - name: application-logs\n    file: \u002Fvar\u002Flog\u002Fmyapp\u002F*.log\n    attributes:\n      service: myapp\n      environment: production\n```\n\n## Common Issues\n\n### Issue: No Data Appearing\n**Problem**: Agent not reporting to New Relic\n**Solution**: Verify license key, check network connectivity, review agent logs\n\n### Issue: Missing Transactions\n**Problem**: Some transactions not captured\n**Solution**: Check instrumentation coverage, verify framework support\n\n### Issue: High Overhead\n**Problem**: APM agent impacting performance\n**Solution**: Adjust sampling rate, disable unnecessary features\n\n## Best Practices\n\n- Use meaningful application names\n- Implement distributed tracing across services\n- Set up service maps for dependency visualization\n- Configure appropriate alert thresholds\n- Use custom attributes for business context\n- Implement logs in context for correlation\n- Set up workloads for service grouping\n- Regular review of unused dashboards and alerts\n\n## Related Skills\n\n- datadog (`datadog`) - Alternative monitoring platform\n- prometheus-grafana (`prometheus-grafana`) - Open source monitoring\n- alerting-oncall (`alerting-oncall`) - Alert management\n\n## Limitations\n\n- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.\n- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.\n\n### Example\n\n```bash\ngit status && git diff --stat\nkubectl diff -f manifest.yaml\n```\n\n> Adapted from [BagelHole\u002FDevOps-Security-Agent-Skills](https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use\u002FLimitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.\n",{"name":5,"risk":31,"source":51,"license":14,"category":52,"metadata":53,"date_added":56,"description":7,"source_repo":57,"source_type":35,"compatibility":58,"license_source":59},"https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills","devops",{"author":54,"version":55},"devops-skills","1.0","2026-09-20","BagelHole\u002FDevOps-Security-Agent-Skills","Requires the relevant platform CLIs (kubectl, helm, terraform, git, CI runners) and authorized access to the target environment. Docs-only; helper scripts and templates not bundled.","https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Fnew-relic","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill new-relic",{"tool":71,"command":72},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill new-relic",{"tool":74,"command":75},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill new-relic","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fnew-relic\u002FSKILL.md",true,[],[80,98,122,147,175,199],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"publishedAt":46},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[86],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[88,89,90,91,92,93,82,94,39,38,37,27,35,33,95,31,96,30,29,97],"ZeRO","trust","zero trust","architecture","assessment","verification","segmentation","active","scope","implementing",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":46},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[105,106,107,108,109,110,111,112,113,114,115,116,117,27,118,35,119,120,31,121],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","run","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":46},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[129,130,131,132,133,134,135,136,137,138,139,140,141,35,33,142,143,144,145,146],"transcript","youtube transcript","youtube","safe","github","codex","research","license","https","text","fetch","tooling","clean","local","output","deepapi","youtube transcripts","blob",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":164,"publishedAt":46},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[153,156,159],{"categoryNo":154,"categoryName":155,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":157,"categoryName":158,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":160,"categoryName":161,"taxonomyType":162,"taxonomyTypeDesc":163},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[129,130,131,165,132,166,133,134,136,167,168,169,170,139,171,35,33,172,173,174],"youtube transcript skills","gemini","search","api","Video","browse","api-integration","free","card","channels",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":185,"publishedAt":46},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[181,184],{"categoryNo":182,"categoryName":183,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":157,"categoryName":158,"taxonomyType":20,"taxonomyTypeDesc":21},[131,186,187,109,132,188,189,190,191,136,169,192,193,194,195,33,196,142,197,198],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":46},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[205],{"categoryNo":154,"categoryName":155,"taxonomyType":20,"taxonomyTypeDesc":21},[207,131,208,209,132,166,167,210,211,168,169,170,139,212,171,35,33,172,213,145],"youtube full","full","google","server","dlp","credits","automatic"]