{
    "componentChunkName": "component---node-modules-shenhh-smooth-doc-src-templates-doc-js",
    "path": "/docs/languages/java/",
    "result": {"data":{"mdx":{"fields":{"pageType":"doc","title":"Java 语言接入指南","editLink":"https://gitlab.corp.youdao.com/DevOPS/apm/docs/edit/master/pages/docs/languages/java.mdx"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Java 语言接入指南\",\n  \"section\": \"语言接入指南\",\n  \"slug\": \"/docs/languages/java/\",\n  \"order\": 3\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"java-语言-opentelemetry-接入指南\"\n  }, mdx(\"a\", {\n    parentName: \"h1\",\n    \"href\": \"#java-%E8%AF%AD%E8%A8%80-opentelemetry-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Java \\u8BED\\u8A00 OpenTelemetry \\u63A5\\u5165\\u6307\\u5357\"), mdx(\"p\", null, \"\\u672C\\u6587\\u6863\\u63D0\\u4F9B Java \\u5E94\\u7528\\u63A5\\u5165 OpenTelemetry \\u7684\\u5B8C\\u6574\\u6307\\u5357\\uFF0C\\u91CD\\u70B9\\u4ECB\\u7ECD\\u4F7F\\u7528 Java Agent \\u8FDB\\u884C\\u96F6\\u4EE3\\u7801\\u63A5\\u5165\\uFF0C\\u4EE5\\u53CA SDK \\u624B\\u52A8\\u63A5\\u5165\\u65B9\\u5F0F\\u3002\"), mdx(\"h2\", {\n    \"id\": \"目录\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E7%9B%AE%E5%BD%95\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u76EE\\u5F55\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#%E6%A6%82%E8%BF%B0\"\n  }, \"\\u6982\\u8FF0\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#%E9%9B%B6%E4%BB%A3%E7%A0%81%E6%8E%A5%E5%85%A5%E6%8E%A8%E8%8D%90\"\n  }, \"\\u96F6\\u4EE3\\u7801\\u63A5\\u5165\\uFF08\\u63A8\\u8350\\uFF09\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#sdk-%E6%89%8B%E5%8A%A8%E6%8E%A5%E5%85%A5\"\n  }, \"SDK \\u624B\\u52A8\\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#%E6%A1%86%E6%9E%B6%E9%9B%86%E6%88%90%E7%A4%BA%E4%BE%8B\"\n  }, \"\\u6846\\u67B6\\u96C6\\u6210\\u793A\\u4F8B\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#%E9%AB%98%E7%BA%A7%E9%85%8D%E7%BD%AE\"\n  }, \"\\u9AD8\\u7EA7\\u914D\\u7F6E\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5\"\n  }, \"\\u6700\\u4F73\\u5B9E\\u8DF5\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"#%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5\"\n  }, \"\\u6545\\u969C\\u6392\\u67E5\"))), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"概述\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E6%A6%82%E8%BF%B0\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6982\\u8FF0\"), mdx(\"h3\", {\n    \"id\": \"java-语言特性\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#java-%E8%AF%AD%E8%A8%80%E7%89%B9%E6%80%A7\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Java \\u8BED\\u8A00\\u7279\\u6027\"), mdx(\"p\", null, \"Java \\u8BED\\u8A00\\u7684 OpenTelemetry \\u652F\\u6301\\u5177\\u6709\\u4EE5\\u4E0B\\u7279\\u70B9:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u6210\\u719F\\u7A33\\u5B9A\"), \": Java Agent \\u548C SDK \\u5DF2\\u8FBE\\u5230 1.0 \\u7A33\\u5B9A\\u7248\\u672C\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u96F6\\u4EE3\\u7801\\u63A5\\u5165\"), \": \\u901A\\u8FC7 Java Agent \\u5B9E\\u73B0\\u5B8C\\u5168\\u96F6\\u4FB5\\u5165\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u5E7F\\u6CDB\\u652F\\u6301\"), \": \\u652F\\u6301 100+ \\u4E3B\\u6D41 Java \\u6846\\u67B6\\u548C\\u5E93\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u751F\\u4EA7\\u5C31\\u7EEA\"), \": \\u5728\\u5927\\u91CF\\u751F\\u4EA7\\u73AF\\u5883\\u4E2D\\u9A8C\\u8BC1\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring Boot \\u96C6\\u6210\"), \": \\u5B98\\u65B9\\u63D0\\u4F9B Spring Boot Starter\")), mdx(\"h3\", {\n    \"id\": \"版本要求\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u7248\\u672C\\u8981\\u6C42\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Java \\u7248\\u672C\"), \": Java 8+ (\\u63A8\\u8350 Java 17+)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"OpenTelemetry Java\"), \": v1.30.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Java Agent\"), \": v2.0.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u652F\\u6301\\u67B6\\u6784\"), \": x86_64, ARM64\")), mdx(\"h3\", {\n    \"id\": \"支持的信号\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%94%AF%E6%8C%81%E7%9A%84%E4%BF%A1%E5%8F%B7\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u652F\\u6301\\u7684\\u4FE1\\u53F7\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u2705 \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Traces\"), \": \\u5B8C\\u5168\\u652F\\u6301\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u2705 \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Metrics\"), \": \\u5B8C\\u5168\\u652F\\u6301\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u2705 \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Logs\"), \": \\u5B8C\\u5168\\u652F\\u6301\\uFF08Java 9+\\uFF09\")), mdx(\"h3\", {\n    \"id\": \"适用场景\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u9002\\u7528\\u573A\\u666F\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Spring Boot \\u5E94\\u7528\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5FAE\\u670D\\u52A1\\u67B6\\u6784\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F20\\u7EDF Java EE \\u5E94\\u7528\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u6279\\u5904\\u7406\\u4F5C\\u4E1A\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u6D88\\u606F\\u961F\\u5217\\u5E94\\u7528\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"零代码接入推荐\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E9%9B%B6%E4%BB%A3%E7%A0%81%E6%8E%A5%E5%85%A5%E6%8E%A8%E8%8D%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u96F6\\u4EE3\\u7801\\u63A5\\u5165\\uFF08\\u63A8\\u8350\\uFF09\"), mdx(\"p\", null, \"Java Agent \\u662F Java \\u96F6\\u4EE3\\u7801\\u63A5\\u5165\\u7684\\u6700\\u4F73\\u65B9\\u5F0F\\uFF0C\\u901A\\u8FC7\\u5B57\\u8282\\u7801\\u589E\\u5F3A\\u6280\\u672F\\u5B9E\\u73B0\\u5B8C\\u5168\\u96F6\\u4FB5\\u5165\\u7684\\u81EA\\u52A8\\u57CB\\u70B9\\u3002\"), mdx(\"h3\", {\n    \"id\": \"下载-java-agent\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E4%B8%8B%E8%BD%BD-java-agent\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u4E0B\\u8F7D Java Agent\"), mdx(\"h4\", {\n    \"id\": \"方法-1-从-maven-central-下载\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-1-%E4%BB%8E-maven-central-%E4%B8%8B%E8%BD%BD\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u6CD5 1: \\u4ECE Maven Central \\u4E0B\\u8F7D\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u4E0B\\u8F7D\\u6700\\u65B0\\u7248\\u672C\\nwget https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar\\n\\n# \\u6216\\u6307\\u5B9A\\u7248\\u672C\\nwget https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.0.0/opentelemetry-javaagent.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"方法-2-使用-mavengradle-依赖\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-2-%E4%BD%BF%E7%94%A8-mavengradle-%E4%BE%9D%E8%B5%96\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u6CD5 2: \\u4F7F\\u7528 Maven/Gradle \\u4F9D\\u8D56\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Maven\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<dependency>\\n    <groupId>io.opentelemetry.javaagent</groupId>\\n    <artifactId>opentelemetry-javaagent</artifactId>\\n    <version>2.0.0</version>\\n    <type>pom</type>\\n</dependency>\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Gradle\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-gradle\"\n  }, \"dependencies {\\n    implementation platform('io.opentelemetry.javaagent:opentelemetry-javaagent-bom:2.0.0')\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"快速开始\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5FEB\\u901F\\u5F00\\u59CB\"), mdx(\"h4\", {\n    \"id\": \"1-配置环境变量\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#1-%E9%85%8D%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"1. \\u914D\\u7F6E\\u73AF\\u5883\\u53D8\\u91CF\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u670D\\u52A1\\u4FE1\\u606F\\nexport OTEL_SERVICE_NAME=my-java-service\\nexport OTEL_RESOURCE_ATTRIBUTES=service.version=1.0.0,deployment.environment=production\\n\\n# OTLP Exporter\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=uptrace-grpc.yodao.cn:4317\\nexport OTEL_EXPORTER_OTLP_PROTOCOL=grpc\\nexport OTEL_EXPORTER_OTLP_HEADERS=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n\\n# Traces \\u914D\\u7F6E\\nexport OTEL_TRACES_EXPORTER=otlp\\nexport OTEL_TRACES_SAMPLER=parentbased_traceidratio\\nexport OTEL_TRACES_SAMPLER_ARG=0.1\\n\\n# Metrics \\u914D\\u7F6E\\nexport OTEL_METRICS_EXPORTER=otlp\\nexport OTEL_METRIC_EXPORT_INTERVAL=60000\\n\\n# Logs \\u914D\\u7F6E\\uFF08Java 9+\\uFF09\\nexport OTEL_LOGS_EXPORTER=otlp\\n\")), mdx(\"h4\", {\n    \"id\": \"2-启动应用\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#2-%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"2. \\u542F\\u52A8\\u5E94\\u7528\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u4F7F\\u7528 -javaagent \\u53C2\\u6570\\njava -javaagent:opentelemetry-javaagent.jar \\\\\\n     -jar my-application.jar\\n\\n# \\u6216\\u6307\\u5B9A Agent \\u8DEF\\u5F84\\njava -javaagent:/path/to/opentelemetry-javaagent.jar \\\\\\n     -jar my-application.jar\\n\")), mdx(\"p\", null, \"\\u5C31\\u8FD9\\u4E48\\u7B80\\u5355\\uFF01\\u60A8\\u7684\\u5E94\\u7528\\u73B0\\u5728\\u5DF2\\u7ECF\\u81EA\\u52A8\\u57CB\\u70B9\\u5E76\\u5F00\\u59CB\\u53D1\\u9001\\u9065\\u6D4B\\u6570\\u636E\\u4E86\\u3002\"), mdx(\"h3\", {\n    \"id\": \"支持的框架和库\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%94%AF%E6%8C%81%E7%9A%84%E6%A1%86%E6%9E%B6%E5%92%8C%E5%BA%93\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u652F\\u6301\\u7684\\u6846\\u67B6\\u548C\\u5E93\"), mdx(\"p\", null, \"Java Agent \\u81EA\\u52A8\\u652F\\u6301 100+ \\u6846\\u67B6\\u548C\\u5E93\\uFF0C\\u5305\\u62EC\\uFF1A\"), mdx(\"h4\", {\n    \"id\": \"web-框架\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#web-%E6%A1%86%E6%9E%B6\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Web \\u6846\\u67B6\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring Boot\"), \": 2.0+, 3.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring MVC\"), \": 3.1+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring WebFlux\"), \": 5.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"JAX-RS\"), \": Jersey, RESTEasy, Apache CXF\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Servlet\"), \": 2.3+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Vert.x\"), \": 3.0+, 4.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Quarkus\"), \": 1.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Micronaut\"), \": 1.0+\")), mdx(\"h4\", {\n    \"id\": \"数据库\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%95%B0%E6%8D%AE%E5%BA%93\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6570\\u636E\\u5E93\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"JDBC\"), \": \\u6240\\u6709\\u5B9E\\u73B0\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Hibernate\"), \": 3.3+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"JPA\"), \": \\u6240\\u6709\\u5B9E\\u73B0\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"MongoDB\"), \": 3.0+, 4.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Redis\"), \": Jedis, Lettuce\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Elasticsearch\"), \": 5.0+, 6.0+, 7.0+, 8.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Cassandra\"), \": 3.0+, 4.0+\")), mdx(\"h4\", {\n    \"id\": \"rpc-框架\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#rpc-%E6%A1%86%E6%9E%B6\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"RPC \\u6846\\u67B6\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"gRPC\"), \": 1.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Apache Dubbo\"), \": 2.7+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Apache Thrift\"), \": 0.8+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring Cloud OpenFeign\"), \": 2.0+\")), mdx(\"h4\", {\n    \"id\": \"消息队列\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6D88\\u606F\\u961F\\u5217\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Kafka\"), \": 0.11+, 1.0+, 2.0+, 3.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"RabbitMQ\"), \": 5.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"RocketMQ\"), \": 4.0+, 5.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Apache Pulsar\"), \": 2.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"JMS\"), \": 1.1+, 2.0+\")), mdx(\"h4\", {\n    \"id\": \"http-客户端\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#http-%E5%AE%A2%E6%88%B7%E7%AB%AF\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"HTTP \\u5BA2\\u6237\\u7AEF\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Apache HttpClient\"), \": 4.0+, 5.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"OkHttp\"), \": 3.0+, 4.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring RestTemplate\"), \": 3.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Spring WebClient\"), \": 5.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Netty\"), \": 4.0+, 4.1+\")), mdx(\"h4\", {\n    \"id\": \"其他\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%85%B6%E4%BB%96\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5176\\u4ED6\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Logback\"), \": 1.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Log4j2\"), \": 2.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"SLF4J\"), \": 1.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Quartz\"), \": 2.0+\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Akka\"), \": 2.5+, 2.6+\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5B8C\\u6574\\u5217\\u8868\"), \": \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md\"\n  }, \"https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md\")), mdx(\"h3\", {\n    \"id\": \"环境变量配置\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u73AF\\u5883\\u53D8\\u91CF\\u914D\\u7F6E\"), mdx(\"h4\", {\n    \"id\": \"必需配置\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%BF%85%E9%9C%80%E9%85%8D%E7%BD%AE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5FC5\\u9700\\u914D\\u7F6E\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u670D\\u52A1\\u540D\\u79F0\\uFF08\\u5FC5\\u9700\\uFF09\\nexport OTEL_SERVICE_NAME=my-java-service\\n\\n# OTLP Endpoint\\uFF08\\u5FC5\\u9700\\uFF09\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=uptrace-grpc.yodao.cn:4317\\n\")), mdx(\"h4\", {\n    \"id\": \"推荐配置\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%8E%A8%E8%8D%90%E9%85%8D%E7%BD%AE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u63A8\\u8350\\u914D\\u7F6E\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u670D\\u52A1\\u4FE1\\u606F\\nexport OTEL_SERVICE_NAME=my-java-service\\nexport OTEL_RESOURCE_ATTRIBUTES=service.version=1.0.0,deployment.environment=production,service.namespace=backend\\n\\n# OTLP \\u914D\\u7F6E\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=uptrace-grpc.yodao.cn:4317\\nexport OTEL_EXPORTER_OTLP_PROTOCOL=grpc\\nexport OTEL_EXPORTER_OTLP_HEADERS=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\nexport OTEL_EXPORTER_OTLP_COMPRESSION=gzip\\nexport OTEL_EXPORTER_OTLP_TIMEOUT=10000\\n\\n# Traces \\u914D\\u7F6E\\nexport OTEL_TRACES_EXPORTER=otlp\\nexport OTEL_TRACES_SAMPLER=parentbased_traceidratio\\nexport OTEL_TRACES_SAMPLER_ARG=0.1\\n\\n# Metrics \\u914D\\u7F6E\\nexport OTEL_METRICS_EXPORTER=otlp\\nexport OTEL_METRIC_EXPORT_INTERVAL=60000\\n\\n# Logs \\u914D\\u7F6E\\uFF08Java 9+\\uFF09\\nexport OTEL_LOGS_EXPORTER=otlp\\n\\n# \\u65E5\\u5FD7\\u7EA7\\u522B\\nexport OTEL_LOG_LEVEL=info\\n\\n# \\u7981\\u7528\\u7279\\u5B9A\\u57CB\\u70B9\\u5E93\\uFF08\\u53EF\\u9009\\uFF09\\nexport OTEL_INSTRUMENTATION_KAFKA_ENABLED=false\\nexport OTEL_INSTRUMENTATION_REDIS_ENABLED=true\\n\")), mdx(\"h4\", {\n    \"id\": \"高级配置\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E9%AB%98%E7%BA%A7%E9%85%8D%E7%BD%AE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u9AD8\\u7EA7\\u914D\\u7F6E\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u6279\\u91CF\\u5BFC\\u51FA\\u914D\\u7F6E\\nexport OTEL_BSP_SCHEDULE_DELAY=5000\\nexport OTEL_BSP_MAX_QUEUE_SIZE=2048\\nexport OTEL_BSP_MAX_EXPORT_BATCH_SIZE=512\\nexport OTEL_BSP_EXPORT_TIMEOUT=30000\\n\\n# Span \\u9650\\u5236\\nexport OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT=128\\nexport OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT=1024\\nexport OTEL_SPAN_EVENT_COUNT_LIMIT=128\\n\\n# Propagators\\nexport OTEL_PROPAGATORS=tracecontext,baggage\\n\\n# \\u7981\\u7528 SDK\\uFF08\\u7528\\u4E8E\\u6D4B\\u8BD5\\uFF09\\nexport OTEL_SDK_DISABLED=false\\n\")), mdx(\"h3\", {\n    \"id\": \"启动方式\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E5%90%AF%E5%8A%A8%E6%96%B9%E5%BC%8F\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u542F\\u52A8\\u65B9\\u5F0F\"), mdx(\"h4\", {\n    \"id\": \"方式-1-命令行参数\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E5%BC%8F-1-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u5F0F 1: \\u547D\\u4EE4\\u884C\\u53C2\\u6570\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"java -javaagent:opentelemetry-javaagent.jar \\\\\\n     -jar my-application.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"方式-2-系统属性\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E5%BC%8F-2-%E7%B3%BB%E7%BB%9F%E5%B1%9E%E6%80%A7\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u5F0F 2: \\u7CFB\\u7EDF\\u5C5E\\u6027\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"java -javaagent:opentelemetry-javaagent.jar \\\\\\n     -Dotel.service.name=my-service \\\\\\n     -Dotel.exporter.otlp.endpoint=uptrace-grpc.yodao.cn:4317 \\\\\\n     -Dotel.exporter.otlp.headers=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project \\\\\\n     -jar my-application.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"方式-3-配置文件\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E5%BC%8F-3-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u5F0F 3: \\u914D\\u7F6E\\u6587\\u4EF6\"), mdx(\"p\", null, \"\\u521B\\u5EFA \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"otel.properties\"), \" \\u6587\\u4EF6\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-properties\"\n  }, \"otel.service.name=my-service\\notel.exporter.otlp.endpoint=uptrace-grpc.yodao.cn:4317\\notel.exporter.otlp.headers=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\notel.traces.sampler=parentbased_traceidratio\\notel.traces.sampler.arg=0.1\\n\")), mdx(\"p\", null, \"\\u4F7F\\u7528\\u914D\\u7F6E\\u6587\\u4EF6\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"java -javaagent:opentelemetry-javaagent.jar \\\\\\n     -Dotel.configuration.file=otel.properties \\\\\\n     -jar my-application.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"方式-4-spring-boot\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E5%BC%8F-4-spring-boot\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u5F0F 4: Spring Boot\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"application.properties\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-properties\"\n  }, \"otel.service.name=my-service\\notel.exporter.otlp.endpoint=uptrace-grpc.yodao.cn:4317\\notel.exporter.otlp.headers=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u542F\\u52A8\\u811A\\u672C\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"java -javaagent:opentelemetry-javaagent.jar \\\\\\n     -jar my-spring-boot-app.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"方式-5-docker\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E5%BC%8F-5-docker\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u5F0F 5: Docker\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-dockerfile\"\n  }, \"FROM openjdk:17-jre-slim\\n\\n# \\u590D\\u5236 Agent\\nCOPY opentelemetry-javaagent.jar /app/\\n\\n# \\u590D\\u5236\\u5E94\\u7528\\nCOPY my-application.jar /app/\\n\\n# \\u8BBE\\u7F6E\\u73AF\\u5883\\u53D8\\u91CF\\nENV OTEL_SERVICE_NAME=my-service\\nENV OTEL_EXPORTER_OTLP_ENDPOINT=uptrace-grpc.yodao.cn:4317\\nENV OTEL_EXPORTER_OTLP_HEADERS=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n\\n# \\u542F\\u52A8\\u5E94\\u7528\\nENTRYPOINT [\\\"java\\\", \\\"-javaagent:/app/opentelemetry-javaagent.jar\\\", \\\"-jar\\\", \\\"/app/my-application.jar\\\"]\\n\")), mdx(\"h4\", {\n    \"id\": \"方式-6-kubernetes\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E6%96%B9%E5%BC%8F-6-kubernetes\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u65B9\\u5F0F 6: Kubernetes\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yaml\"\n  }, \"apiVersion: apps/v1\\nkind: Deployment\\nmetadata:\\n  name: my-app\\nspec:\\n  template:\\n    spec:\\n      containers:\\n      - name: app\\n        image: my-java-app:latest\\n        env:\\n        - name: OTEL_SERVICE_NAME\\n          value: my-service\\n        - name: OTEL_EXPORTER_OTLP_ENDPOINT\\n          value: uptrace-grpc.yodao.cn:4317\\n        - name: OTEL_EXPORTER_OTLP_HEADERS\\n          valueFrom:\\n            secretKeyRef:\\n              name: apm-credentials\\n              key: otlp-headers\\n        volumeMounts:\\n        - name: javaagent\\n          mountPath: /app/javaagent.jar\\n          subPath: opentelemetry-javaagent.jar\\n        command:\\n        - java\\n        - -javaagent:/app/javaagent.jar\\n        - -jar\\n        - /app/my-application.jar\\n      volumes:\\n      - name: javaagent\\n        configMap:\\n          name: javaagent\\n---\\napiVersion: v1\\nkind: ConfigMap\\nmetadata:\\n  name: javaagent\\ndata:\\n  opentelemetry-javaagent.jar: |\\n    # \\u4E8C\\u8FDB\\u5236\\u5185\\u5BB9\\uFF08\\u4ECE\\u6587\\u4EF6\\u8BFB\\u53D6\\uFF09\\n\")), mdx(\"h3\", {\n    \"id\": \"使用-opentelemetry-operator\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E4%BD%BF%E7%94%A8-opentelemetry-operator\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u4F7F\\u7528 OpenTelemetry Operator\"), mdx(\"p\", null, \"\\u5982\\u679C\\u4F7F\\u7528 Kubernetes\\uFF0C\\u63A8\\u8350\\u4F7F\\u7528 OpenTelemetry Operator \\u81EA\\u52A8\\u6CE8\\u5165 Agent\\u3002\"), mdx(\"h4\", {\n    \"id\": \"安装-operator\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%AE%89%E8%A3%85-operator\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5B89\\u88C5 Operator\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml\\n\")), mdx(\"h4\", {\n    \"id\": \"创建-instrumentation-资源\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%88%9B%E5%BB%BA-instrumentation-%E8%B5%84%E6%BA%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u521B\\u5EFA Instrumentation \\u8D44\\u6E90\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yaml\"\n  }, \"apiVersion: opentelemetry.io/v1alpha1\\nkind: Instrumentation\\nmetadata:\\n  name: my-instrumentation\\n  namespace: default\\nspec:\\n  exporter:\\n    endpoint: uptrace-grpc.yodao.cn:4317\\n  env:\\n    - name: OTEL_EXPORTER_OTLP_HEADERS\\n      value: uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n  propagators:\\n    - tracecontext\\n    - baggage\\n  sampler:\\n    type: parentbased_traceidratio\\n    argument: \\\"0.1\\\"\\n  java:\\n    image: ghcr.io/open-telemetry/opentelemetry-java-instrumentation:latest\\n\")), mdx(\"h4\", {\n    \"id\": \"部署应用\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E9%83%A8%E7%BD%B2%E5%BA%94%E7%94%A8\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u90E8\\u7F72\\u5E94\\u7528\"), mdx(\"p\", null, \"\\u5728 Pod \\u4E0A\\u6DFB\\u52A0 annotation:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yaml\"\n  }, \"apiVersion: apps/v1\\nkind: Deployment\\nmetadata:\\n  name: my-app\\nspec:\\n  template:\\n    metadata:\\n      annotations:\\n        instrumentation.opentelemetry.io/inject-java: \\\"true\\\"\\n    spec:\\n      containers:\\n      - name: app\\n        image: my-java-app:latest\\n\")), mdx(\"h3\", {\n    \"id\": \"验证零代码接入\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E9%AA%8C%E8%AF%81%E9%9B%B6%E4%BB%A3%E7%A0%81%E6%8E%A5%E5%85%A5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u9A8C\\u8BC1\\u96F6\\u4EE3\\u7801\\u63A5\\u5165\"), mdx(\"p\", null, \"\\u542F\\u52A8\\u5E94\\u7528\\u540E\\uFF0C\\u8BBF\\u95EE\\u60A8\\u7684\\u670D\\u52A1\\u7AEF\\u70B9\\uFF0C\\u7136\\u540E\\u5728 APM \\u5E73\\u53F0\\u67E5\\u770B\\u6570\\u636E\\uFF1A\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Traces\"), \": \\u67E5\\u770B\\u8C03\\u7528\\u94FE\\u8DEF\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Metrics\"), \": \\u67E5\\u770B\\u8BF7\\u6C42\\u91CF\\u3001\\u5EF6\\u8FDF\\u7B49\\u6307\\u6807\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Service Map\"), \": \\u67E5\\u770B\\u670D\\u52A1\\u62D3\\u6251\\u56FE\")), mdx(\"h4\", {\n    \"id\": \"快速验证脚本\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%BF%AB%E9%80%9F%E9%AA%8C%E8%AF%81%E8%84%9A%E6%9C%AC\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5FEB\\u901F\\u9A8C\\u8BC1\\u811A\\u672C\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"#!/bin/bash\\n# verify-java-instrumentation.sh\\n\\necho \\\"Checking service...\\\"\\ncurl -s http://localhost:8080/actuator/health > /dev/null\\n\\necho \\\"Waiting for traces to be exported...\\\"\\nsleep 10\\n\\necho \\\"Check your APM platform for service: $OTEL_SERVICE_NAME\\\"\\necho \\\"Endpoint: $OTEL_EXPORTER_OTLP_ENDPOINT\\\"\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"sdk-手动接入\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#sdk-%E6%89%8B%E5%8A%A8%E6%8E%A5%E5%85%A5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"SDK \\u624B\\u52A8\\u63A5\\u5165\"), mdx(\"p\", null, \"\\u5982\\u679C\\u9700\\u8981\\u66F4\\u7EC6\\u7C92\\u5EA6\\u7684\\u63A7\\u5236\\u6216\\u81EA\\u5B9A\\u4E49\\u57CB\\u70B9\\uFF0C\\u53EF\\u4EE5\\u4F7F\\u7528 SDK \\u624B\\u52A8\\u63A5\\u5165\\u3002\"), mdx(\"h3\", {\n    \"id\": \"添加依赖\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%B7%BB%E5%8A%A0%E4%BE%9D%E8%B5%96\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6DFB\\u52A0\\u4F9D\\u8D56\"), mdx(\"h4\", {\n    \"id\": \"maven\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#maven\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Maven\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<dependencies>\\n    <!-- OpenTelemetry API -->\\n    <dependency>\\n        <groupId>io.opentelemetry</groupId>\\n        <artifactId>opentelemetry-api</artifactId>\\n        <version>1.30.0</version>\\n    </dependency>\\n    \\n    <!-- OpenTelemetry SDK -->\\n    <dependency>\\n        <groupId>io.opentelemetry</groupId>\\n        <artifactId>opentelemetry-sdk</artifactId>\\n        <version>1.30.0</version>\\n    </dependency>\\n    \\n    <!-- OTLP Exporter -->\\n    <dependency>\\n        <groupId>io.opentelemetry</groupId>\\n        <artifactId>opentelemetry-exporter-otlp</artifactId>\\n        <version>1.30.0</version>\\n    </dependency>\\n    \\n    <!-- \\u57CB\\u70B9\\u5E93\\uFF08\\u53EF\\u9009\\uFF09 -->\\n    <dependency>\\n        <groupId>io.opentelemetry.instrumentation</groupId>\\n        <artifactId>opentelemetry-spring-boot-starter</artifactId>\\n        <version>2.0.0</version>\\n    </dependency>\\n</dependencies>\\n\")), mdx(\"h4\", {\n    \"id\": \"gradle\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#gradle\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Gradle\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-gradle\"\n  }, \"dependencies {\\n    // OpenTelemetry API\\n    implementation 'io.opentelemetry:opentelemetry-api:1.30.0'\\n    \\n    // OpenTelemetry SDK\\n    implementation 'io.opentelemetry:opentelemetry-sdk:1.30.0'\\n    \\n    // OTLP Exporter\\n    implementation 'io.opentelemetry:opentelemetry-exporter-otlp:1.30.0'\\n    \\n    // \\u57CB\\u70B9\\u5E93\\uFF08\\u53EF\\u9009\\uFF09\\n    implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:2.0.0'\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"初始化-opentelemetry\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E5%88%9D%E5%A7%8B%E5%8C%96-opentelemetry\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u521D\\u59CB\\u5316 OpenTelemetry\"), mdx(\"h4\", {\n    \"id\": \"基础初始化\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%9F%BA%E7%A1%80%E5%88%9D%E5%A7%8B%E5%8C%96\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u57FA\\u7840\\u521D\\u59CB\\u5316\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.opentelemetry.api.OpenTelemetry;\\nimport io.opentelemetry.api.common.Attributes;\\nimport io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;\\nimport io.opentelemetry.context.propagation.ContextPropagators;\\nimport io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;\\nimport io.opentelemetry.sdk.OpenTelemetrySdk;\\nimport io.opentelemetry.sdk.resources.Resource;\\nimport io.opentelemetry.sdk.trace.SdkTracerProvider;\\nimport io.opentelemetry.sdk.trace.export.BatchSpanProcessor;\\nimport io.opentelemetry.semconv.ResourceAttributes;\\n\\nimport java.util.concurrent.TimeUnit;\\n\\npublic class OpenTelemetryConfig {\\n    \\n    public static OpenTelemetry initializeOpenTelemetry() {\\n        // 1. \\u521B\\u5EFA Resource\\n        Resource resource = Resource.getDefault()\\n            .merge(Resource.create(Attributes.of(\\n                ResourceAttributes.SERVICE_NAME, \\\"my-java-service\\\",\\n                ResourceAttributes.SERVICE_VERSION, \\\"1.0.0\\\",\\n                ResourceAttributes.DEPLOYMENT_ENVIRONMENT, \\\"production\\\"\\n            )));\\n\\n        // 2. \\u521B\\u5EFA OTLP Exporter\\n        OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter.builder()\\n            .setEndpoint(\\\"uptrace-grpc.yodao.cn:4317\\\")\\n            .addHeader(\\\"uptrace-dsn\\\", \\\"http://token@uptrace-grpc.yodao.cn/project\\\")\\n            .setTimeout(10, TimeUnit.SECONDS)\\n            .build();\\n\\n        // 3. \\u521B\\u5EFA Tracer Provider\\n        SdkTracerProvider tracerProvider = SdkTracerProvider.builder()\\n            .setResource(resource)\\n            .addSpanProcessor(BatchSpanProcessor.builder(spanExporter)\\n                .setScheduleDelay(5, TimeUnit.SECONDS)\\n                .setMaxExportBatchSize(512)\\n                .setExportTimeout(30, TimeUnit.SECONDS)\\n                .build())\\n            .build();\\n\\n        // 4. \\u521B\\u5EFA OpenTelemetry \\u5B9E\\u4F8B\\n        OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()\\n            .setTracerProvider(tracerProvider)\\n            .setPropagators(ContextPropagators.create(\\n                W3CTraceContextPropagator.getInstance()\\n            ))\\n            .buildAndRegisterGlobal();\\n\\n        // 5. \\u6CE8\\u518C Shutdown Hook\\n        Runtime.getRuntime().addShutdownHook(new Thread(() -> {\\n            tracerProvider.shutdown();\\n        }));\\n\\n        return openTelemetry;\\n    }\\n}\\n\")), mdx(\"h4\", {\n    \"id\": \"在-main-方法中初始化\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%9C%A8-main-%E6%96%B9%E6%B3%95%E4%B8%AD%E5%88%9D%E5%A7%8B%E5%8C%96\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5728 main \\u65B9\\u6CD5\\u4E2D\\u521D\\u59CB\\u5316\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.opentelemetry.api.OpenTelemetry;\\n\\npublic class Application {\\n    \\n    public static void main(String[] args) {\\n        // \\u521D\\u59CB\\u5316 OpenTelemetry\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        // \\u542F\\u52A8\\u5E94\\u7528\\n        SpringApplication.run(Application.class, args);\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"traces---手动埋点\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#traces---%E6%89%8B%E5%8A%A8%E5%9F%8B%E7%82%B9\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Traces - \\u624B\\u52A8\\u57CB\\u70B9\"), mdx(\"h4\", {\n    \"id\": \"创建和使用-span\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E5%88%9B%E5%BB%BA%E5%92%8C%E4%BD%BF%E7%94%A8-span\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u521B\\u5EFA\\u548C\\u4F7F\\u7528 Span\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.opentelemetry.api.OpenTelemetry;\\nimport io.opentelemetry.api.common.AttributeKey;\\nimport io.opentelemetry.api.trace.Span;\\nimport io.opentelemetry.api.trace.Tracer;\\nimport io.opentelemetry.api.trace.StatusCode;\\nimport io.opentelemetry.context.Scope;\\n\\npublic class OrderService {\\n    \\n    private static final Tracer tracer = \\n        OpenTelemetry.getGlobalTracerProvider()\\n            .get(\\\"my-java-service\\\");\\n    \\n    public void processOrder(String orderId) {\\n        // \\u521B\\u5EFA Span\\n        Span span = tracer.spanBuilder(\\\"process_order\\\")\\n            .setAttribute(\\\"order.id\\\", orderId)\\n            .setAttribute(\\\"operation\\\", \\\"process\\\")\\n            .startSpan();\\n        \\n        try (Scope scope = span.makeCurrent()) {\\n            // \\u6DFB\\u52A0\\u4E8B\\u4EF6\\n            span.addEvent(\\\"order_validation_started\\\");\\n            \\n            // \\u9A8C\\u8BC1\\u8BA2\\u5355\\n            validateOrder(orderId);\\n            \\n            span.addEvent(\\\"order_validated\\\");\\n            \\n            // \\u5904\\u7406\\u652F\\u4ED8\\n            processPayment(orderId);\\n            \\n            span.addEvent(\\\"payment_processed\\\");\\n            \\n            // \\u8BBE\\u7F6E\\u6210\\u529F\\u72B6\\u6001\\n            span.setStatus(StatusCode.OK);\\n            span.setAttribute(\\\"order.success\\\", true);\\n            \\n        } catch (Exception e) {\\n            // \\u8BB0\\u5F55\\u9519\\u8BEF\\n            span.recordException(e);\\n            span.setStatus(StatusCode.ERROR, e.getMessage());\\n            throw e;\\n        } finally {\\n            span.end();\\n        }\\n    }\\n    \\n    private void validateOrder(String orderId) {\\n        Span span = tracer.spanBuilder(\\\"validate_order\\\")\\n            .setAttribute(\\\"order.id\\\", orderId)\\n            .startSpan();\\n        \\n        try (Scope scope = span.makeCurrent()) {\\n            // \\u4E1A\\u52A1\\u903B\\u8F91\\n        } finally {\\n            span.end();\\n        }\\n    }\\n    \\n    private void processPayment(String orderId) {\\n        Span span = tracer.spanBuilder(\\\"process_payment\\\")\\n            .setAttribute(\\\"order.id\\\", orderId)\\n            .setAttribute(\\\"payment.method\\\", \\\"credit_card\\\")\\n            .startSpan();\\n        \\n        try (Scope scope = span.makeCurrent()) {\\n            // \\u652F\\u4ED8\\u903B\\u8F91\\n        } finally {\\n            span.end();\\n        }\\n    }\\n}\\n\")), mdx(\"h4\", {\n    \"id\": \"使用-withspan-注解推荐\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E4%BD%BF%E7%94%A8-withspan-%E6%B3%A8%E8%A7%A3%E6%8E%A8%E8%8D%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u4F7F\\u7528 @WithSpan \\u6CE8\\u89E3\\uFF08\\u63A8\\u8350\\uFF09\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.opentelemetry.extension.annotations.WithSpan;\\nimport org.springframework.stereotype.Service;\\n\\n@Service\\npublic class OrderService {\\n    \\n    @WithSpan(\\\"process_order\\\")\\n    public void processOrder(@SpanAttribute(\\\"order.id\\\") String orderId) {\\n        validateOrder(orderId);\\n        processPayment(orderId);\\n    }\\n    \\n    @WithSpan(\\\"validate_order\\\")\\n    private void validateOrder(@SpanAttribute(\\\"order.id\\\") String orderId) {\\n        // \\u4E1A\\u52A1\\u903B\\u8F91\\n    }\\n    \\n    @WithSpan(\\\"process_payment\\\")\\n    private void processPayment(@SpanAttribute(\\\"order.id\\\") String orderId) {\\n        // \\u652F\\u4ED8\\u903B\\u8F91\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"metrics---指标采集\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#metrics---%E6%8C%87%E6%A0%87%E9%87%87%E9%9B%86\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Metrics - \\u6307\\u6807\\u91C7\\u96C6\"), mdx(\"h4\", {\n    \"id\": \"counter计数器\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#counter%E8%AE%A1%E6%95%B0%E5%99%A8\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Counter\\uFF08\\u8BA1\\u6570\\u5668\\uFF09\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.opentelemetry.api.OpenTelemetry;\\nimport io.opentelemetry.api.common.Attributes;\\nimport io.opentelemetry.api.metrics.LongCounter;\\nimport io.opentelemetry.api.metrics.Meter;\\n\\npublic class MetricsExample {\\n    \\n    private static final Meter meter = \\n        OpenTelemetry.getGlobalMeterProvider()\\n            .meterBuilder(\\\"my-java-service\\\")\\n            .build();\\n    \\n    private static final LongCounter requestCounter = \\n        meter.counterBuilder(\\\"http.server.requests\\\")\\n            .setDescription(\\\"Total number of HTTP requests\\\")\\n            .setUnit(\\\"1\\\")\\n            .build();\\n    \\n    public void handleRequest(String method, String route, int statusCode) {\\n        requestCounter.add(1, Attributes.of(\\n            AttributeKey.stringKey(\\\"http.method\\\"), method,\\n            AttributeKey.stringKey(\\\"http.route\\\"), route,\\n            AttributeKey.longKey(\\\"http.status_code\\\"), statusCode\\n        ));\\n    }\\n}\\n\")), mdx(\"h4\", {\n    \"id\": \"histogram直方图\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#histogram%E7%9B%B4%E6%96%B9%E5%9B%BE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Histogram\\uFF08\\u76F4\\u65B9\\u56FE\\uFF09\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.opentelemetry.api.metrics.DoubleHistogram;\\n\\npublic class MetricsExample {\\n    \\n    private static final DoubleHistogram requestDuration = \\n        meter.histogramBuilder(\\\"http.server.duration\\\")\\n            .setDescription(\\\"HTTP request duration\\\")\\n            .setUnit(\\\"ms\\\")\\n            .build();\\n    \\n    public void recordDuration(double durationMs, String method, String route) {\\n        requestDuration.record(durationMs, Attributes.of(\\n            AttributeKey.stringKey(\\\"http.method\\\"), method,\\n            AttributeKey.stringKey(\\\"http.route\\\"), route\\n        ));\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"logs---日志集成\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#logs---%E6%97%A5%E5%BF%97%E9%9B%86%E6%88%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Logs - \\u65E5\\u5FD7\\u96C6\\u6210\"), mdx(\"h4\", {\n    \"id\": \"集成-logback\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E9%9B%86%E6%88%90-logback\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u96C6\\u6210 Logback\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<!-- logback-spring.xml -->\\n<configuration>\\n    <appender name=\\\"OTEL\\\" class=\\\"io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender\\\">\\n        <captureExperimentalAttributes>true</captureExperimentalAttributes>\\n        <captureKeyValuePairAttributes>true</captureKeyValuePairAttributes>\\n    </appender>\\n    \\n    <root level=\\\"INFO\\\">\\n        <appender-ref ref=\\\"OTEL\\\" />\\n    </root>\\n</configuration>\\n\")), mdx(\"h4\", {\n    \"id\": \"集成-log4j2\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E9%9B%86%E6%88%90-log4j2\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u96C6\\u6210 Log4j2\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<!-- log4j2.xml -->\\n<Configuration>\\n    <Appenders>\\n        <OpenTelemetryAppender name=\\\"OTEL\\\">\\n            <captureExperimentalAttributes>true</captureExperimentalAttributes>\\n        </OpenTelemetryAppender>\\n    </Appenders>\\n    \\n    <Loggers>\\n        <Root level=\\\"INFO\\\">\\n            <AppenderRef ref=\\\"OTEL\\\" />\\n        </Root>\\n    </Loggers>\\n</Configuration>\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"框架集成示例\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E6%A1%86%E6%9E%B6%E9%9B%86%E6%88%90%E7%A4%BA%E4%BE%8B\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6846\\u67B6\\u96C6\\u6210\\u793A\\u4F8B\"), mdx(\"h3\", {\n    \"id\": \"spring-boot\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#spring-boot\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Spring Boot\"), mdx(\"h4\", {\n    \"id\": \"使用-spring-boot-starter推荐\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E4%BD%BF%E7%94%A8-spring-boot-starter%E6%8E%A8%E8%8D%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u4F7F\\u7528 Spring Boot Starter\\uFF08\\u63A8\\u8350\\uFF09\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u6DFB\\u52A0\\u4F9D\\u8D56\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<dependency>\\n    <groupId>io.opentelemetry.instrumentation</groupId>\\n    <artifactId>opentelemetry-spring-boot-starter</artifactId>\\n    <version>2.0.0</version>\\n</dependency>\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"application.properties\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-properties\"\n  }, \"otel.service.name=my-spring-boot-service\\notel.exporter.otlp.endpoint=uptrace-grpc.yodao.cn:4317\\notel.exporter.otlp.headers=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\notel.traces.sampler=parentbased_traceidratio\\notel.traces.sampler.arg=0.1\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Controller \\u793A\\u4F8B\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport org.springframework.web.bind.annotation.*;\\nimport io.opentelemetry.extension.annotations.WithSpan;\\n\\n@RestController\\n@RequestMapping(\\\"/api/users\\\")\\npublic class UserController {\\n    \\n    @GetMapping(\\\"/{id}\\\")\\n    @WithSpan(\\\"get_user\\\")\\n    public User getUser(@PathVariable String id) {\\n        return userService.findById(id);\\n    }\\n    \\n    @PostMapping\\n    @WithSpan(\\\"create_user\\\")\\n    public User createUser(@RequestBody User user) {\\n        return userService.save(user);\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"grpc-server\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#grpc-server\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"gRPC Server\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.grpc.Server;\\nimport io.grpc.ServerBuilder;\\nimport io.opentelemetry.api.OpenTelemetry;\\nimport io.opentelemetry.instrumentation.grpc.v1_6.GrpcTelemetry;\\n\\npublic class GrpcServer {\\n    \\n    public static void main(String[] args) throws Exception {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        GrpcTelemetry grpcTelemetry = GrpcTelemetry.create(openTelemetry);\\n        \\n        Server server = ServerBuilder.forPort(50051)\\n            .intercept(grpcTelemetry.newServerInterceptor())\\n            .addService(new UserServiceImpl())\\n            .build();\\n        \\n        server.start();\\n        server.awaitTermination();\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"kafka-consumer\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#kafka-consumer\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Kafka Consumer\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport org.apache.kafka.clients.consumer.ConsumerRecord;\\nimport org.apache.kafka.clients.consumer.ConsumerRecords;\\nimport org.apache.kafka.clients.consumer.KafkaConsumer;\\nimport io.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry;\\n\\npublic class KafkaConsumerExample {\\n    \\n    public static void main(String[] args) {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        KafkaTelemetry kafkaTelemetry = KafkaTelemetry.create(openTelemetry);\\n        \\n        Properties props = new Properties();\\n        props.put(\\\"bootstrap.servers\\\", \\\"localhost:9092\\\");\\n        props.put(\\\"group.id\\\", \\\"my-group\\\");\\n        \\n        KafkaConsumer<String, String> consumer = \\n            kafkaTelemetry.wrap(new KafkaConsumer<>(props));\\n        \\n        consumer.subscribe(Collections.singletonList(\\\"my-topic\\\"));\\n        \\n        while (true) {\\n            ConsumerRecords<String, String> records = consumer.poll(100);\\n            for (ConsumerRecord<String, String> record : records) {\\n                processMessage(record);\\n            }\\n        }\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"database---jdbc\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#database---jdbc\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Database - JDBC\"), mdx(\"p\", null, \"\\u4F7F\\u7528 Java Agent \\u65F6\\uFF0CJDBC \\u8C03\\u7528\\u4F1A\\u81EA\\u52A8\\u8FFD\\u8E2A\\u3002\\u624B\\u52A8\\u63A5\\u5165\\u793A\\u4F8B\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport java.sql.Connection;\\nimport java.sql.DriverManager;\\nimport java.sql.PreparedStatement;\\nimport java.sql.ResultSet;\\nimport io.opentelemetry.api.trace.Span;\\nimport io.opentelemetry.api.trace.Tracer;\\nimport io.opentelemetry.context.Scope;\\n\\npublic class DatabaseExample {\\n    \\n    private static final Tracer tracer = \\n        OpenTelemetry.getGlobalTracerProvider()\\n            .get(\\\"my-java-service\\\");\\n    \\n    public User getUser(String id) throws Exception {\\n        Span span = tracer.spanBuilder(\\\"database.query\\\")\\n            .setAttribute(\\\"db.system\\\", \\\"postgresql\\\")\\n            .setAttribute(\\\"db.operation\\\", \\\"SELECT\\\")\\n            .startSpan();\\n        \\n        try (Scope scope = span.makeCurrent()) {\\n            Connection conn = DriverManager.getConnection(\\n                \\\"jdbc:postgresql://localhost:5432/mydb\\\",\\n                \\\"user\\\", \\\"password\\\"\\n            );\\n            \\n            PreparedStatement stmt = conn.prepareStatement(\\n                \\\"SELECT * FROM users WHERE id = ?\\\"\\n            );\\n            stmt.setString(1, id);\\n            \\n            span.setAttribute(\\\"db.statement\\\", \\\"SELECT * FROM users WHERE id = ?\\\");\\n            \\n            ResultSet rs = stmt.executeQuery();\\n            \\n            if (rs.next()) {\\n                User user = new User();\\n                user.setId(rs.getString(\\\"id\\\"));\\n                user.setName(rs.getString(\\\"name\\\"));\\n                span.setStatus(StatusCode.OK);\\n                return user;\\n            }\\n            \\n            span.setStatus(StatusCode.OK);\\n            return null;\\n            \\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\")), mdx(\"h3\", {\n    \"id\": \"database---hibernatejpa\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#database---hibernatejpa\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Database - Hibernate/JPA\"), mdx(\"p\", null, \"\\u4F7F\\u7528 Java Agent \\u65F6\\uFF0CHibernate \\u8C03\\u7528\\u4F1A\\u81EA\\u52A8\\u8FFD\\u8E2A\\u3002\\u624B\\u52A8\\u63A5\\u5165\\u793A\\u4F8B\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport org.springframework.data.jpa.repository.JpaRepository;\\nimport org.springframework.stereotype.Repository;\\nimport io.opentelemetry.extension.annotations.WithSpan;\\n\\n@Repository\\npublic interface UserRepository extends JpaRepository<User, String> {\\n    \\n    @WithSpan(\\\"find_user_by_email\\\")\\n    User findByEmail(String email);\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"http-client---apache-httpclient\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#http-client---apache-httpclient\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"HTTP Client - Apache HttpClient\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport org.apache.http.client.methods.CloseableHttpResponse;\\nimport org.apache.http.client.methods.HttpGet;\\nimport org.apache.http.impl.client.CloseableHttpClient;\\nimport org.apache.http.impl.client.HttpClients;\\nimport io.opentelemetry.instrumentation.apachehttpclient.v4_3.ApacheHttpClientTelemetry;\\n\\npublic class HttpClientExample {\\n    \\n    public static void main(String[] args) throws Exception {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        ApacheHttpClientTelemetry telemetry = \\n            ApacheHttpClientTelemetry.create(openTelemetry);\\n        \\n        CloseableHttpClient httpClient = \\n            telemetry.newHttpClient(HttpClients.createDefault());\\n        \\n        HttpGet request = new HttpGet(\\\"https://api.example.com/users/123\\\");\\n        \\n        try (CloseableHttpResponse response = httpClient.execute(request)) {\\n            // \\u5904\\u7406\\u54CD\\u5E94\\n            int statusCode = response.getStatusLine().getStatusCode();\\n            System.out.println(\\\"Status: \\\" + statusCode);\\n        }\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"http-client---okhttp\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#http-client---okhttp\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"HTTP Client - OkHttp\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport okhttp3.OkHttpClient;\\nimport okhttp3.Request;\\nimport okhttp3.Response;\\nimport io.opentelemetry.instrumentation.okhttp.v3_0.OkHttpTelemetry;\\n\\npublic class OkHttpExample {\\n    \\n    public static void main(String[] args) throws Exception {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        OkHttpTelemetry telemetry = OkHttpTelemetry.create(openTelemetry);\\n        \\n        OkHttpClient client = telemetry.newCallFactory(new OkHttpClient());\\n        \\n        Request request = new Request.Builder()\\n            .url(\\\"https://api.example.com/users/123\\\")\\n            .build();\\n        \\n        try (Response response = client.newCall(request).execute()) {\\n            // \\u5904\\u7406\\u54CD\\u5E94\\n            System.out.println(\\\"Status: \\\" + response.code());\\n        }\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"redis---jedis\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#redis---jedis\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Redis - Jedis\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport redis.clients.jedis.Jedis;\\nimport io.opentelemetry.instrumentation.jedis.v4_0.JedisTelemetry;\\n\\npublic class RedisExample {\\n    \\n    public static void main(String[] args) {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        JedisTelemetry telemetry = JedisTelemetry.create(openTelemetry);\\n        \\n        Jedis jedis = new Jedis(\\\"localhost\\\", 6379);\\n        Jedis instrumentedJedis = telemetry.wrap(jedis);\\n        \\n        // \\u81EA\\u52A8\\u8FFD\\u8E2A Redis \\u64CD\\u4F5C\\n        instrumentedJedis.set(\\\"key\\\", \\\"value\\\");\\n        String value = instrumentedJedis.get(\\\"key\\\");\\n        \\n        System.out.println(\\\"Value: \\\" + value);\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"redis---lettuce\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#redis---lettuce\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Redis - Lettuce\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport io.lettuce.core.RedisClient;\\nimport io.lettuce.core.api.StatefulRedisConnection;\\nimport io.lettuce.core.api.sync.RedisCommands;\\nimport io.opentelemetry.instrumentation.lettuce.v5_1.LettuceTelemetry;\\n\\npublic class LettuceExample {\\n    \\n    public static void main(String[] args) {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        LettuceTelemetry telemetry = LettuceTelemetry.create(openTelemetry);\\n        \\n        RedisClient client = RedisClient.create(\\\"redis://localhost:6379\\\");\\n        StatefulRedisConnection<String, String> connection = \\n            telemetry.wrap(client.connect());\\n        \\n        RedisCommands<String, String> commands = connection.sync();\\n        \\n        // \\u81EA\\u52A8\\u8FFD\\u8E2A Redis \\u64CD\\u4F5C\\n        commands.set(\\\"key\\\", \\\"value\\\");\\n        String value = commands.get(\\\"key\\\");\\n        \\n        System.out.println(\\\"Value: \\\" + value);\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"mongodb\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#mongodb\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"MongoDB\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport com.mongodb.client.MongoClient;\\nimport com.mongodb.client.MongoClients;\\nimport com.mongodb.client.MongoCollection;\\nimport com.mongodb.client.MongoDatabase;\\nimport io.opentelemetry.instrumentation.mongo.v3_1.MongoTelemetry;\\n\\npublic class MongoExample {\\n    \\n    public static void main(String[] args) {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        MongoTelemetry telemetry = MongoTelemetry.create(openTelemetry);\\n        \\n        MongoClient mongoClient = telemetry.wrap(\\n            MongoClients.create(\\\"mongodb://localhost:27017\\\")\\n        );\\n        \\n        MongoDatabase database = mongoClient.getDatabase(\\\"mydb\\\");\\n        MongoCollection<Document> collection = database.getCollection(\\\"users\\\");\\n        \\n        // \\u81EA\\u52A8\\u8FFD\\u8E2A MongoDB \\u64CD\\u4F5C\\n        Document user = collection.find(eq(\\\"id\\\", \\\"123\\\")).first();\\n        \\n        System.out.println(\\\"User: \\\" + user);\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"rabbitmq\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#rabbitmq\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"RabbitMQ\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport com.rabbitmq.client.Channel;\\nimport com.rabbitmq.client.Connection;\\nimport com.rabbitmq.client.ConnectionFactory;\\nimport io.opentelemetry.instrumentation.rabbitmq.v2_7.RabbitMQTelemetry;\\n\\npublic class RabbitMQExample {\\n    \\n    public static void main(String[] args) throws Exception {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        \\n        RabbitMQTelemetry telemetry = RabbitMQTelemetry.create(openTelemetry);\\n        \\n        ConnectionFactory factory = new ConnectionFactory();\\n        factory.setHost(\\\"localhost\\\");\\n        \\n        Connection connection = factory.newConnection();\\n        Channel channel = telemetry.wrap(connection.createChannel());\\n        \\n        // \\u81EA\\u52A8\\u8FFD\\u8E2A RabbitMQ \\u64CD\\u4F5C\\n        channel.queueDeclare(\\\"my-queue\\\", false, false, false, null);\\n        channel.basicPublish(\\\"\\\", \\\"my-queue\\\", null, \\\"Hello World\\\".getBytes());\\n        \\n        System.out.println(\\\"Message sent\\\");\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"webflux-reactive\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#webflux-reactive\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"WebFlux (Reactive)\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"package com.example;\\n\\nimport org.springframework.web.bind.annotation.*;\\nimport org.springframework.web.reactive.function.client.WebClient;\\nimport reactor.core.publisher.Mono;\\nimport io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxTelemetry;\\n\\n@RestController\\n@RequestMapping(\\\"/api\\\")\\npublic class WebFluxController {\\n    \\n    private final WebClient webClient;\\n    \\n    public WebFluxController(WebClient.Builder webClientBuilder) {\\n        OpenTelemetry openTelemetry = OpenTelemetryConfig.initializeOpenTelemetry();\\n        SpringWebfluxTelemetry telemetry = \\n            SpringWebfluxTelemetry.create(openTelemetry);\\n        \\n        this.webClient = telemetry.wrap(webClientBuilder.build());\\n    }\\n    \\n    @GetMapping(\\\"/users/{id}\\\")\\n    public Mono<User> getUser(@PathVariable String id) {\\n        // \\u81EA\\u52A8\\u8FFD\\u8E2A WebFlux \\u8C03\\u7528\\n        return webClient.get()\\n            .uri(\\\"https://api.example.com/users/{id}\\\", id)\\n            .retrieve()\\n            .bodyToMono(User.class);\\n    }\\n}\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"高级配置-1\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E9%AB%98%E7%BA%A7%E9%85%8D%E7%BD%AE-1\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u9AD8\\u7EA7\\u914D\\u7F6E\"), mdx(\"h3\", {\n    \"id\": \"自定义采样策略\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%87%87%E6%A0%B7%E7%AD%96%E7%95%A5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u81EA\\u5B9A\\u4E49\\u91C7\\u6837\\u7B56\\u7565\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"import io.opentelemetry.sdk.trace.samplers.Sampler;\\n\\npublic class CustomSampler implements Sampler {\\n    \\n    @Override\\n    public SamplingResult shouldSample(\\n        Context parentContext,\\n        String traceId,\\n        String name,\\n        SpanKind spanKind,\\n        Attributes attributes,\\n        List<LinkData> parentLinks) {\\n        \\n        // \\u81EA\\u5B9A\\u4E49\\u91C7\\u6837\\u903B\\u8F91\\n        if (name.contains(\\\"/health\\\")) {\\n            return SamplingResult.create(Decision.DROP);\\n        }\\n        \\n        if (attributes.get(AttributeKey.stringKey(\\\"important\\\")) != null) {\\n            return SamplingResult.create(Decision.RECORD_AND_SAMPLE);\\n        }\\n        \\n        return SamplingResult.create(Decision.RECORD_ONLY);\\n    }\\n    \\n    @Override\\n    public String getDescription() {\\n        return \\\"CustomSampler\\\";\\n    }\\n}\\n\")), mdx(\"h4\", {\n    \"id\": \"使用自定义采样器\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E9%87%87%E6%A0%B7%E5%99%A8\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u4F7F\\u7528\\u81EA\\u5B9A\\u4E49\\u91C7\\u6837\\u5668\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"SdkTracerProvider tracerProvider = SdkTracerProvider.builder()\\n    .setSampler(new CustomSampler())\\n    .addSpanProcessor(BatchSpanProcessor.builder(spanExporter).build())\\n    .build();\\n\")), mdx(\"h3\", {\n    \"id\": \"多-exporter-配置\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E5%A4%9A-exporter-%E9%85%8D%E7%BD%AE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u591A Exporter \\u914D\\u7F6E\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;\\nimport io.opentelemetry.exporter.logging.LoggingSpanExporter;\\n\\n// \\u521B\\u5EFA\\u591A\\u4E2A Exporter\\nOtlpGrpcSpanExporter otlpExporter = OtlpGrpcSpanExporter.builder()\\n    .setEndpoint(\\\"uptrace-grpc.yodao.cn:4317\\\")\\n    .addHeader(\\\"uptrace-dsn\\\", \\\"http://token@uptrace-grpc.yodao.cn/project\\\")\\n    .build();\\n\\nJaegerGrpcSpanExporter jaegerExporter = JaegerGrpcSpanExporter.builder()\\n    .setEndpoint(\\\"http://localhost:14250\\\")\\n    .build();\\n\\nLoggingSpanExporter consoleExporter = LoggingSpanExporter.create();\\n\\n// \\u6DFB\\u52A0\\u591A\\u4E2A\\u5904\\u7406\\u5668\\nSdkTracerProvider tracerProvider = SdkTracerProvider.builder()\\n    .addSpanProcessor(BatchSpanProcessor.builder(otlpExporter).build())\\n    .addSpanProcessor(BatchSpanProcessor.builder(jaegerExporter).build())\\n    .addSpanProcessor(BatchSpanProcessor.builder(consoleExporter).build())\\n    .build();\\n\")), mdx(\"h3\", {\n    \"id\": \"性能优化配置\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E9%85%8D%E7%BD%AE\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6027\\u80FD\\u4F18\\u5316\\u914D\\u7F6E\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"SdkTracerProvider tracerProvider = SdkTracerProvider.builder()\\n    .addSpanProcessor(\\n        BatchSpanProcessor.builder(spanExporter)\\n            .setMaxExportBatchSize(512)           // \\u6279\\u91CF\\u5927\\u5C0F\\n            .setScheduleDelay(5, TimeUnit.SECONDS) // \\u6279\\u91CF\\u5EF6\\u8FDF\\n            .setExportTimeout(30, TimeUnit.SECONDS) // \\u5BFC\\u51FA\\u8D85\\u65F6\\n            .setMaxQueueSize(2048)                 // \\u961F\\u5217\\u5927\\u5C0F\\n            .build()\\n    )\\n    .setSampler(Sampler.parentBased(\\n        Sampler.traceIdRatioBased(0.1)  // 10% \\u91C7\\u6837\\n    ))\\n    .build();\\n\")), mdx(\"h3\", {\n    \"id\": \"资源检测\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E8%B5%84%E6%BA%90%E6%A3%80%E6%B5%8B\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u8D44\\u6E90\\u68C0\\u6D4B\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"Resource resource = Resource.getDefault()\\n    .merge(Resource.create(Attributes.of(\\n        ResourceAttributes.SERVICE_NAME, \\\"my-service\\\",\\n        ResourceAttributes.SERVICE_VERSION, \\\"1.0.0\\\",\\n        ResourceAttributes.DEPLOYMENT_ENVIRONMENT, \\\"production\\\"\\n    )))\\n    .merge(Resource.getDefault()\\n        .merge(Resource.create(Attributes.empty()))\\n        .merge(Resource.create(Attributes.of(\\n            ResourceAttributes.HOST_NAME, System.getenv(\\\"HOSTNAME\\\"),\\n            ResourceAttributes.OS_TYPE, System.getProperty(\\\"os.name\\\")\\n        )))\\n    );\\n\")), mdx(\"h3\", {\n    \"id\": \"禁用特定埋点库\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E7%A6%81%E7%94%A8%E7%89%B9%E5%AE%9A%E5%9F%8B%E7%82%B9%E5%BA%93\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u7981\\u7528\\u7279\\u5B9A\\u57CB\\u70B9\\u5E93\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u901A\\u8FC7\\u73AF\\u5883\\u53D8\\u91CF\\u7981\\u7528\\nexport OTEL_INSTRUMENTATION_KAFKA_ENABLED=false\\nexport OTEL_INSTRUMENTATION_REDIS_ENABLED=false\\nexport OTEL_INSTRUMENTATION_JDBC_ENABLED=true\\n\")), mdx(\"h3\", {\n    \"id\": \"自定义属性添加\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B1%9E%E6%80%A7%E6%B7%BB%E5%8A%A0\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u81EA\\u5B9A\\u4E49\\u5C5E\\u6027\\u6DFB\\u52A0\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"import io.opentelemetry.sdk.trace.SpanProcessor;\\nimport io.opentelemetry.sdk.trace.data.SpanData;\\n\\npublic class AttributeAddingProcessor implements SpanProcessor {\\n    \\n    @Override\\n    public void onStart(Context parentContext, ReadWriteSpan span) {\\n        span.setAttribute(\\\"custom.attribute\\\", \\\"value\\\");\\n        span.setAttribute(\\\"environment\\\", System.getenv(\\\"ENV\\\"));\\n    }\\n    \\n    @Override\\n    public boolean isStartRequired() {\\n        return true;\\n    }\\n    \\n    @Override\\n    public void onEnd(ReadableSpan span) {\\n        // \\u5904\\u7406\\u7ED3\\u675F\\u7684 Span\\n    }\\n    \\n    @Override\\n    public boolean isEndRequired() {\\n        return false;\\n    }\\n    \\n    @Override\\n    public CompletableResultCode shutdown() {\\n        return CompletableResultCode.ofSuccess();\\n    }\\n    \\n    @Override\\n    public CompletableResultCode forceFlush() {\\n        return CompletableResultCode.ofSuccess();\\n    }\\n}\\n\\n// \\u4F7F\\u7528\\nSdkTracerProvider tracerProvider = SdkTracerProvider.builder()\\n    .addSpanProcessor(new AttributeAddingProcessor())\\n    .addSpanProcessor(BatchSpanProcessor.builder(spanExporter).build())\\n    .build();\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"最佳实践\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6700\\u4F73\\u5B9E\\u8DF5\"), mdx(\"h3\", {\n    \"id\": \"1-使用-java-agent推荐\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#1-%E4%BD%BF%E7%94%A8-java-agent%E6%8E%A8%E8%8D%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"1. \\u4F7F\\u7528 Java Agent\\uFF08\\u63A8\\u8350\\uFF09\"), mdx(\"p\", null, \"\\u5BF9\\u4E8E\\u5927\\u591A\\u6570\\u573A\\u666F\\uFF0C\\u63A8\\u8350\\u4F7F\\u7528 Java Agent \\u8FDB\\u884C\\u96F6\\u4EE3\\u7801\\u63A5\\u5165\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"java -javaagent:opentelemetry-javaagent.jar -jar my-app.jar\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u4F18\\u70B9\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u96F6\\u4EE3\\u7801\\u4FEE\\u6539\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u81EA\\u52A8\\u652F\\u6301 100+ \\u6846\\u67B6\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u7EDF\\u4E00\\u914D\\u7F6E\\u7BA1\\u7406\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u751F\\u4EA7\\u5C31\\u7EEA\")), mdx(\"h3\", {\n    \"id\": \"2-context-传播\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#2-context-%E4%BC%A0%E6%92%AD\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"2. Context \\u4F20\\u64AD\"), mdx(\"p\", null, \"\\u786E\\u4FDD\\u5728\\u5F02\\u6B65\\u64CD\\u4F5C\\u4E2D\\u6B63\\u786E\\u4F20\\u64AD Context\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u4F20\\u9012 Context\\nCompletableFuture.supplyAsync(() -> {\\n    try (Scope scope = span.makeCurrent()) {\\n        return processOrder(orderId);\\n    }\\n}, executor);\\n\\n// \\u274C \\u9519\\u8BEF\\uFF1A\\u521B\\u5EFA\\u65B0\\u7684 Context\\nCompletableFuture.supplyAsync(() -> {\\n    Span newSpan = tracer.spanBuilder(\\\"operation\\\").startSpan();\\n    // \\u4E22\\u5931\\u4E86\\u7236 Span \\u7684\\u5173\\u8054\\n    return processOrder(orderId);\\n}, executor);\\n\")), mdx(\"h3\", {\n    \"id\": \"3-使用-try-with-resources\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#3-%E4%BD%BF%E7%94%A8-try-with-resources\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"3. \\u4F7F\\u7528 try-with-resources\"), mdx(\"p\", null, \"\\u786E\\u4FDD Span \\u6B63\\u786E\\u7ED3\\u675F\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u4F7F\\u7528 try-with-resources\\nSpan span = tracer.spanBuilder(\\\"operation\\\").startSpan();\\ntry (Scope scope = span.makeCurrent()) {\\n    // \\u4E1A\\u52A1\\u903B\\u8F91\\n} finally {\\n    span.end();\\n}\\n\\n// \\u2705 \\u66F4\\u7B80\\u6D01\\uFF1A\\u4F7F\\u7528 @WithSpan \\u6CE8\\u89E3\\n@WithSpan(\\\"operation\\\")\\npublic void operation() {\\n    // \\u4E1A\\u52A1\\u903B\\u8F91\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"4-错误处理\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#4-%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"4. \\u9519\\u8BEF\\u5904\\u7406\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u8BB0\\u5F55\\u5F02\\u5E38\\u5E76\\u8BBE\\u7F6E\\u72B6\\u6001\\ntry {\\n    processOrder(orderId);\\n    span.setStatus(StatusCode.OK);\\n} catch (Exception e) {\\n    span.recordException(e);\\n    span.setStatus(StatusCode.ERROR, e.getMessage());\\n    throw e;\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"5-属性命名\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#5-%E5%B1%9E%E6%80%A7%E5%91%BD%E5%90%8D\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"5. \\u5C5E\\u6027\\u547D\\u540D\"), mdx(\"p\", null, \"\\u4F7F\\u7528\\u8BED\\u4E49\\u7EA6\\u5B9A\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u4F7F\\u7528\\u8BED\\u4E49\\u7EA6\\u5B9A\\nspan.setAttribute(SemanticAttributes.HTTP_METHOD, \\\"GET\\\");\\nspan.setAttribute(SemanticAttributes.HTTP_URL, \\\"https://api.example.com/users\\\");\\nspan.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, 200L);\\n\\n// \\u274C \\u9519\\u8BEF\\uFF1A\\u4F7F\\u7528\\u81EA\\u5B9A\\u4E49\\u952E\\u540D\\nspan.setAttribute(\\\"method\\\", \\\"GET\\\");\\nspan.setAttribute(\\\"url\\\", \\\"https://api.example.com/users\\\");\\n\")), mdx(\"h3\", {\n    \"id\": \"6-避免过度埋点\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#6-%E9%81%BF%E5%85%8D%E8%BF%87%E5%BA%A6%E5%9F%8B%E7%82%B9\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"6. \\u907F\\u514D\\u8FC7\\u5EA6\\u57CB\\u70B9\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u53EA\\u5728\\u5173\\u952E\\u8DEF\\u5F84\\u57CB\\u70B9\\n@WithSpan(\\\"process_order\\\")\\npublic void processOrder(String orderId) {\\n    validateOrder(orderId);\\n    chargePayment(orderId);\\n}\\n\\n// \\u274C \\u9519\\u8BEF\\uFF1A\\u5BF9\\u6BCF\\u4E2A\\u5C0F\\u65B9\\u6CD5\\u90FD\\u57CB\\u70B9\\n@WithSpan(\\\"validate_id\\\")\\nprivate void validateId(String id) { }  // \\u592A\\u7EC6\\u7C92\\u5EA6\\n\\n@WithSpan(\\\"check_format\\\")\\nprivate void checkFormat(String id) { }  // \\u592A\\u7EC6\\u7C92\\u5EA6\\n\")), mdx(\"h3\", {\n    \"id\": \"7-资源管理\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#7-%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"7. \\u8D44\\u6E90\\u7BA1\\u7406\"), mdx(\"p\", null, \"\\u786E\\u4FDD\\u5728\\u5E94\\u7528\\u5173\\u95ED\\u65F6\\u6B63\\u786E\\u5173\\u95ED OpenTelemetry\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"@PreDestroy\\npublic void shutdown() {\\n    SdkTracerProvider tracerProvider = \\n        (SdkTracerProvider) OpenTelemetry.getGlobalTracerProvider();\\n    tracerProvider.shutdown();\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"8-spring-boot-集成\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#8-spring-boot-%E9%9B%86%E6%88%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"8. Spring Boot \\u96C6\\u6210\"), mdx(\"p\", null, \"\\u4F7F\\u7528 Spring Boot Starter \\u7B80\\u5316\\u914D\\u7F6E\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<dependency>\\n    <groupId>io.opentelemetry.instrumentation</groupId>\\n    <artifactId>opentelemetry-spring-boot-starter</artifactId>\\n    <version>2.0.0</version>\\n</dependency>\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-properties\"\n  }, \"# application.properties\\notel.service.name=my-service\\notel.exporter.otlp.endpoint=uptrace-grpc.yodao.cn:4317\\notel.exporter.otlp.headers=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"故障排查\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u6545\\u969C\\u6392\\u67E5\"), mdx(\"h3\", {\n    \"id\": \"常见问题\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u5E38\\u89C1\\u95EE\\u9898\"), mdx(\"h4\", {\n    \"id\": \"1-数据未发送到后端\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#1-%E6%95%B0%E6%8D%AE%E6%9C%AA%E5%8F%91%E9%80%81%E5%88%B0%E5%90%8E%E7%AB%AF\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"1. \\u6570\\u636E\\u672A\\u53D1\\u9001\\u5230\\u540E\\u7AEF\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": APM \\u5E73\\u53F0\\u770B\\u4E0D\\u5230\\u6570\\u636E\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u6392\\u67E5\\u6B65\\u9AA4\"), \":\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5\\u73AF\\u5883\\u53D8\\u91CF\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"echo $OTEL_SERVICE_NAME\\necho $OTEL_EXPORTER_OTLP_ENDPOINT\\necho $OTEL_EXPORTER_OTLP_HEADERS\\n\")), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5 Java Agent \\u662F\\u5426\\u6B63\\u786E\\u52A0\\u8F7D\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u542F\\u52A8\\u65F6\\u5E94\\u8BE5\\u770B\\u5230\\u7C7B\\u4F3C\\u65E5\\u5FD7\\n# [otel.javaagent] Starting OpenTelemetry Javaagent\\n\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u542F\\u7528\\u8C03\\u8BD5\\u65E5\\u5FD7\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_LOG_LEVEL=debug\\n\")), mdx(\"ol\", {\n    \"start\": 4\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u4F7F\\u7528 Console Exporter \\u9A8C\\u8BC1\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_TRACES_EXPORTER=logging\\n\")), mdx(\"ol\", {\n    \"start\": 5\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5\\u91C7\\u6837\\u7387\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u4E34\\u65F6\\u8BBE\\u7F6E\\u4E3A 100% \\u91C7\\u6837\\nexport OTEL_TRACES_SAMPLER_ARG=1.0\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u786E\\u8BA4 endpoint \\u5730\\u5740\\u6B63\\u786E\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u786E\\u8BA4 headers \\u5305\\u542B\\u6B63\\u786E\\u7684\\u8BA4\\u8BC1\\u4FE1\\u606F\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5\\u9632\\u706B\\u5899\\u89C4\\u5219\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u9A8C\\u8BC1 DSN \\u662F\\u5426\\u6709\\u6548\")), mdx(\"h4\", {\n    \"id\": \"2-span-未关联\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#2-span-%E6%9C%AA%E5%85%B3%E8%81%94\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"2. Span \\u672A\\u5173\\u8054\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": Trace \\u4E2D\\u7684 Span \\u6CA1\\u6709\\u7236\\u5B50\\u5173\\u7CFB\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u539F\\u56E0\"), \": Context \\u4F20\\u9012\\u4E0D\\u6B63\\u786E\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u4F7F\\u7528 try-with-resources \\u4F20\\u9012 Context\\nSpan parentSpan = tracer.spanBuilder(\\\"parent\\\").startSpan();\\ntry (Scope parentScope = parentSpan.makeCurrent()) {\\n    Span childSpan = tracer.spanBuilder(\\\"child\\\").startSpan();\\n    try (Scope childScope = childSpan.makeCurrent()) {\\n        // \\u4E1A\\u52A1\\u903B\\u8F91\\n    } finally {\\n        childSpan.end();\\n    }\\n} finally {\\n    parentSpan.end();\\n}\\n\")), mdx(\"h4\", {\n    \"id\": \"3-内存泄漏\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#3-%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"3. \\u5185\\u5B58\\u6CC4\\u6F0F\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": \\u5185\\u5B58\\u4F7F\\u7528\\u6301\\u7EED\\u589E\\u957F\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u53EF\\u80FD\\u539F\\u56E0\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Span \\u672A\\u6B63\\u786E\\u7ED3\\u675F\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u961F\\u5217\\u79EF\\u538B\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8D44\\u6E90\\u672A\\u91CA\\u653E\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u786E\\u4FDD Span \\u6B63\\u786E\\u7ED3\\u675F\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u4F7F\\u7528 try-with-resources\\nSpan span = tracer.spanBuilder(\\\"operation\\\").startSpan();\\ntry (Scope scope = span.makeCurrent()) {\\n    // \\u4E1A\\u52A1\\u903B\\u8F91\\n} finally {\\n    span.end();\\n}\\n\")), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u8C03\\u6574\\u961F\\u5217\\u5927\\u5C0F\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_BSP_MAX_QUEUE_SIZE=1024\\nexport OTEL_BSP_SCHEDULE_DELAY=2000\\n\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5\\u8D44\\u6E90\\u91CA\\u653E\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"Runtime.getRuntime().addShutdownHook(new Thread(() -> {\\n    SdkTracerProvider tracerProvider = \\n        (SdkTracerProvider) OpenTelemetry.getGlobalTracerProvider();\\n    tracerProvider.shutdown();\\n}));\\n\")), mdx(\"h4\", {\n    \"id\": \"4-高-cpu-使用率\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#4-%E9%AB%98-cpu-%E4%BD%BF%E7%94%A8%E7%8E%87\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"4. \\u9AD8 CPU \\u4F7F\\u7528\\u7387\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": CPU \\u4F7F\\u7528\\u7387\\u5F02\\u5E38\\u9AD8\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u53EF\\u80FD\\u539F\\u56E0\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u91C7\\u6837\\u7387\\u8FC7\\u9AD8\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u540C\\u6B65\\u5BFC\\u51FA\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5C5E\\u6027\\u5904\\u7406\\u8FC7\\u591A\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u964D\\u4F4E\\u91C7\\u6837\\u7387\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_TRACES_SAMPLER_ARG=0.01  # 1%\\n\")), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u786E\\u4FDD\\u5F02\\u6B65\\u5BFC\\u51FA\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"// \\u2705 \\u6B63\\u786E\\uFF1A\\u4F7F\\u7528 BatchSpanProcessor\\nBatchSpanProcessor.builder(spanExporter).build()\\n\\n// \\u274C \\u9519\\u8BEF\\uFF1A\\u4F7F\\u7528 SimpleSpanProcessor\\nSimpleSpanProcessor.create(spanExporter)\\n\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u9650\\u5236\\u5C5E\\u6027\\u6570\\u91CF\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT=64\\n\")), mdx(\"h4\", {\n    \"id\": \"5-框架未自动埋点\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#5-%E6%A1%86%E6%9E%B6%E6%9C%AA%E8%87%AA%E5%8A%A8%E5%9F%8B%E7%82%B9\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"5. \\u6846\\u67B6\\u672A\\u81EA\\u52A8\\u57CB\\u70B9\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": \\u67D0\\u4E9B\\u6846\\u67B6\\u7684\\u8C03\\u7528\\u6CA1\\u6709\\u88AB\\u8FFD\\u8E2A\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u53EF\\u80FD\\u539F\\u56E0\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u6846\\u67B6\\u7248\\u672C\\u4E0D\\u652F\\u6301\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u57CB\\u70B9\\u5E93\\u672A\\u542F\\u7528\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u914D\\u7F6E\\u4E0D\\u6B63\\u786E\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u68C0\\u67E5\\u6846\\u67B6\\u652F\\u6301\"), \":\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u67E5\\u770B \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md\"\n  }, \"\\u652F\\u6301\\u7684\\u6846\\u67B6\\u5217\\u8868\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5\\u6846\\u67B6\\u7248\\u672C\\u8981\\u6C42\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u542F\\u7528\\u57CB\\u70B9\\u5E93\"), \":\"))), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u68C0\\u67E5\\u662F\\u5426\\u88AB\\u7981\\u7528\\necho $OTEL_INSTRUMENTATION_SPRING_WEB_ENABLED\\n\\n# \\u786E\\u4FDD\\u672A\\u7981\\u7528\\nexport OTEL_INSTRUMENTATION_SPRING_WEB_ENABLED=true\\n\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5 Java Agent \\u7248\\u672C\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u786E\\u4FDD\\u4F7F\\u7528\\u6700\\u65B0\\u7248\\u672C\\njava -javaagent:opentelemetry-javaagent.jar -version\\n\")), mdx(\"h4\", {\n    \"id\": \"6-spring-boot-集成问题\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#6-spring-boot-%E9%9B%86%E6%88%90%E9%97%AE%E9%A2%98\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"6. Spring Boot \\u96C6\\u6210\\u95EE\\u9898\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": Spring Boot \\u5E94\\u7528\\u672A\\u81EA\\u52A8\\u57CB\\u70B9\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5\\u4F9D\\u8D56\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-xml\"\n  }, \"<dependency>\\n    <groupId>io.opentelemetry.instrumentation</groupId>\\n    <artifactId>opentelemetry-spring-boot-starter</artifactId>\\n    <version>2.0.0</version>\\n</dependency>\\n\")), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5\\u914D\\u7F6E\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-properties\"\n  }, \"# application.properties\\notel.service.name=my-service\\notel.exporter.otlp.endpoint=uptrace-grpc.yodao.cn:4317\\n\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5 Java Agent\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u786E\\u4FDD\\u4F7F\\u7528 -javaagent \\u53C2\\u6570\\njava -javaagent:opentelemetry-javaagent.jar -jar app.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"7-认证失败\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#7-%E8%AE%A4%E8%AF%81%E5%A4%B1%E8%B4%A5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"7. \\u8BA4\\u8BC1\\u5931\\u8D25\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u75C7\\u72B6\"), \": \\u6536\\u5230\\u8BA4\\u8BC1\\u9519\\u8BEF\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u9519\\u8BEF\\u4FE1\\u606F\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"authentication failed: invalid DSN\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u68C0\\u67E5 DSN \\u683C\\u5F0F\"), \":\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"echo $OTEL_EXPORTER_OTLP_HEADERS\\n# \\u5E94\\u8BE5\\u5305\\u542B: uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n\")), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u9A8C\\u8BC1 Token \\u6709\\u6548\\u6027\"), \":\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u786E\\u8BA4 Token \\u662F\\u5426\\u6709\\u6548\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5 Token \\u662F\\u5426\\u8FC7\\u671F\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u68C0\\u67E5 Headers \\u683C\\u5F0F\"), \":\"))), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u2705 \\u6B63\\u786E\\u683C\\u5F0F\\nexport OTEL_EXPORTER_OTLP_HEADERS=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\n\\n# \\u274C \\u9519\\u8BEF\\u683C\\u5F0F\\nexport OTEL_EXPORTER_OTLP_HEADERS=api-key=token\\n\")), mdx(\"h3\", {\n    \"id\": \"调试技巧\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u8C03\\u8BD5\\u6280\\u5DE7\"), mdx(\"h4\", {\n    \"id\": \"1-启用详细日志\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#1-%E5%90%AF%E7%94%A8%E8%AF%A6%E7%BB%86%E6%97%A5%E5%BF%97\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"1. \\u542F\\u7528\\u8BE6\\u7EC6\\u65E5\\u5FD7\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_LOG_LEVEL=debug\\nexport OTEL_JAVAAGENT_DEBUG=true\\n\")), mdx(\"h4\", {\n    \"id\": \"2-使用-console-exporter\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#2-%E4%BD%BF%E7%94%A8-console-exporter\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"2. \\u4F7F\\u7528 Console Exporter\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_TRACES_EXPORTER=logging\\nexport OTEL_METRICS_EXPORTER=logging\\nexport OTEL_LOGS_EXPORTER=logging\\n\")), mdx(\"h4\", {\n    \"id\": \"3-检查-java-agent-加载\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#3-%E6%A3%80%E6%9F%A5-java-agent-%E5%8A%A0%E8%BD%BD\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"3. \\u68C0\\u67E5 Java Agent \\u52A0\\u8F7D\"), mdx(\"p\", null, \"\\u542F\\u52A8\\u5E94\\u7528\\u65F6\\u5E94\\u8BE5\\u770B\\u5230\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"[otel.javaagent] Starting OpenTelemetry Javaagent 2.0.0\\n[otel.javaagent] OpenTelemetry Javaagent initialized\\n\")), mdx(\"h4\", {\n    \"id\": \"4-使用-jvm-参数\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#4-%E4%BD%BF%E7%94%A8-jvm-%E5%8F%82%E6%95%B0\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"4. \\u4F7F\\u7528 JVM \\u53C2\\u6570\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"java -javaagent:opentelemetry-javaagent.jar \\\\\\n     -Dotel.javaagent.debug=true \\\\\\n     -Dotel.log.level=debug \\\\\\n     -jar my-app.jar\\n\")), mdx(\"h4\", {\n    \"id\": \"5-检查埋点库状态\"\n  }, mdx(\"a\", {\n    parentName: \"h4\",\n    \"href\": \"#5-%E6%A3%80%E6%9F%A5%E5%9F%8B%E7%82%B9%E5%BA%93%E7%8A%B6%E6%80%81\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"5. \\u68C0\\u67E5\\u57CB\\u70B9\\u5E93\\u72B6\\u6001\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u67E5\\u770B\\u542F\\u7528\\u7684\\u57CB\\u70B9\\u5E93\\nexport OTEL_JAVAAGENT_DEBUG=true\\n# \\u542F\\u52A8\\u5E94\\u7528\\uFF0C\\u67E5\\u770B\\u65E5\\u5FD7\\u4E2D\\u7684 \\\"Instrumenting\\\" \\u4FE1\\u606F\\n\")), mdx(\"h3\", {\n    \"id\": \"环境变量完整示例\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%AE%8C%E6%95%B4%E7%A4%BA%E4%BE%8B\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u73AF\\u5883\\u53D8\\u91CF\\u5B8C\\u6574\\u793A\\u4F8B\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u5F00\\u53D1\\u73AF\\u5883 - \\u5B8C\\u6574\\u8C03\\u8BD5\\nexport OTEL_LOG_LEVEL=debug\\nexport OTEL_SERVICE_NAME=my-service-dev\\nexport OTEL_TRACES_SAMPLER=always_on\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317\\nexport OTEL_TRACES_EXPORTER=otlp,logging\\n\\n# \\u751F\\u4EA7\\u73AF\\u5883 - \\u4F18\\u5316\\u6027\\u80FD\\nexport OTEL_LOG_LEVEL=warn\\nexport OTEL_SERVICE_NAME=my-service\\nexport OTEL_RESOURCE_ATTRIBUTES=service.version=1.0.0,deployment.environment=production\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=uptrace-grpc.yodao.cn:4317\\nexport OTEL_EXPORTER_OTLP_PROTOCOL=grpc\\nexport OTEL_EXPORTER_OTLP_HEADERS=uptrace-dsn=http://token@uptrace-grpc.yodao.cn/project\\nexport OTEL_EXPORTER_OTLP_COMPRESSION=gzip\\nexport OTEL_TRACES_SAMPLER=parentbased_traceidratio\\nexport OTEL_TRACES_SAMPLER_ARG=0.1\\nexport OTEL_BSP_MAX_QUEUE_SIZE=2048\\nexport OTEL_BSP_MAX_EXPORT_BATCH_SIZE=512\\nexport OTEL_BSP_SCHEDULE_DELAY=5000\\n\")), mdx(\"hr\", null), mdx(\"h2\", {\n    \"id\": \"下一步\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E4%B8%8B%E4%B8%80%E6%AD%A5\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u4E0B\\u4E00\\u6B65\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/getting-started/environment-variables/\"\n  }, \"\\u73AF\\u5883\\u53D8\\u91CF\\u914D\\u7F6E\"), \" - \\u4E86\\u89E3\\u6240\\u6709\\u914D\\u7F6E\\u9009\\u9879\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/advanced/sampling/\"\n  }, \"\\u91C7\\u6837\\u7B56\\u7565\"), \" - \\u6DF1\\u5165\\u4E86\\u89E3\\u91C7\\u6837\\u914D\\u7F6E\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/advanced/performance/\"\n  }, \"\\u6027\\u80FD\\u4F18\\u5316\"), \" - \\u964D\\u4F4E\\u76D1\\u63A7\\u5F00\\u9500\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/advanced/troubleshooting/\"\n  }, \"\\u6545\\u969C\\u6392\\u67E5\"), \" - \\u89E3\\u51B3\\u5E38\\u89C1\\u95EE\\u9898\")), mdx(\"h2\", {\n    \"id\": \"参考资源\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E5%8F%82%E8%80%83%E8%B5%84%E6%BA%90\",\n    \"aria-hidden\": true,\n    \"className\": \"anchor\"\n  }, mdx(\"svg\", {\n    \"aria-hidden\": \"true\",\n    height: \"16\",\n    version: \"1.1\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\"\n  }, mdx(\"path\", {\n    fillRule: \"evenodd\",\n    d: \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"\\u53C2\\u8003\\u8D44\\u6E90\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://opentelemetry.io/docs/languages/java/\"\n  }, \"OpenTelemetry Java Documentation\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java\"\n  }, \"OpenTelemetry Java SDK\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java-instrumentation\"\n  }, \"OpenTelemetry Java Instrumentation\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://opentelemetry.io/docs/instrumentation/java/automatic/\"\n  }, \"Java Agent Documentation\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/spring/spring-boot-starter\"\n  }, \"Spring Boot Starter\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md\"\n  }, \"\\u652F\\u6301\\u7684\\u6846\\u67B6\\u5217\\u8868\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://opentelemetry.io/docs/specs/semconv/\"\n  }, \"Java Semantic Conventions\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/open-telemetry/opentelemetry-java/tree/main/examples\"\n  }, \"Example Applications\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#java-语言-opentelemetry-接入指南","title":"Java 语言 OpenTelemetry 接入指南","items":[{"url":"#目录","title":"目录"},{"url":"#概述","title":"概述","items":[{"url":"#java-语言特性","title":"Java 语言特性"},{"url":"#版本要求","title":"版本要求"},{"url":"#支持的信号","title":"支持的信号"},{"url":"#适用场景","title":"适用场景"}]},{"url":"#零代码接入推荐","title":"零代码接入（推荐）","items":[{"url":"#下载-java-agent","title":"下载 Java Agent","items":[{"url":"#方法-1-从-maven-central-下载","title":"方法 1: 从 Maven Central 下载"},{"url":"#方法-2-使用-mavengradle-依赖","title":"方法 2: 使用 Maven/Gradle 依赖"}]},{"url":"#快速开始","title":"快速开始","items":[{"url":"#1-配置环境变量","title":"1. 配置环境变量"},{"url":"#2-启动应用","title":"2. 启动应用"}]},{"url":"#支持的框架和库","title":"支持的框架和库","items":[{"url":"#web-框架","title":"Web 框架"},{"url":"#数据库","title":"数据库"},{"url":"#rpc-框架","title":"RPC 框架"},{"url":"#消息队列","title":"消息队列"},{"url":"#http-客户端","title":"HTTP 客户端"},{"url":"#其他","title":"其他"}]},{"url":"#环境变量配置","title":"环境变量配置","items":[{"url":"#必需配置","title":"必需配置"},{"url":"#推荐配置","title":"推荐配置"},{"url":"#高级配置","title":"高级配置"}]},{"url":"#启动方式","title":"启动方式","items":[{"url":"#方式-1-命令行参数","title":"方式 1: 命令行参数"},{"url":"#方式-2-系统属性","title":"方式 2: 系统属性"},{"url":"#方式-3-配置文件","title":"方式 3: 配置文件"},{"url":"#方式-4-spring-boot","title":"方式 4: Spring Boot"},{"url":"#方式-5-docker","title":"方式 5: Docker"},{"url":"#方式-6-kubernetes","title":"方式 6: Kubernetes"}]},{"url":"#使用-opentelemetry-operator","title":"使用 OpenTelemetry Operator","items":[{"url":"#安装-operator","title":"安装 Operator"},{"url":"#创建-instrumentation-资源","title":"创建 Instrumentation 资源"},{"url":"#部署应用","title":"部署应用"}]},{"url":"#验证零代码接入","title":"验证零代码接入","items":[{"url":"#快速验证脚本","title":"快速验证脚本"}]}]},{"url":"#sdk-手动接入","title":"SDK 手动接入","items":[{"url":"#添加依赖","title":"添加依赖","items":[{"url":"#maven","title":"Maven"},{"url":"#gradle","title":"Gradle"}]},{"url":"#初始化-opentelemetry","title":"初始化 OpenTelemetry","items":[{"url":"#基础初始化","title":"基础初始化"},{"url":"#在-main-方法中初始化","title":"在 main 方法中初始化"}]},{"url":"#traces---手动埋点","title":"Traces - 手动埋点","items":[{"url":"#创建和使用-span","title":"创建和使用 Span"},{"url":"#使用-withspan-注解推荐","title":"使用 @WithSpan 注解（推荐）"}]},{"url":"#metrics---指标采集","title":"Metrics - 指标采集","items":[{"url":"#counter计数器","title":"Counter（计数器）"},{"url":"#histogram直方图","title":"Histogram（直方图）"}]},{"url":"#logs---日志集成","title":"Logs - 日志集成","items":[{"url":"#集成-logback","title":"集成 Logback"},{"url":"#集成-log4j2","title":"集成 Log4j2"}]}]},{"url":"#框架集成示例","title":"框架集成示例","items":[{"url":"#spring-boot","title":"Spring Boot","items":[{"url":"#使用-spring-boot-starter推荐","title":"使用 Spring Boot Starter（推荐）"}]},{"url":"#grpc-server","title":"gRPC Server"},{"url":"#kafka-consumer","title":"Kafka Consumer"},{"url":"#database---jdbc","title":"Database - JDBC"},{"url":"#database---hibernatejpa","title":"Database - Hibernate/JPA"},{"url":"#http-client---apache-httpclient","title":"HTTP Client - Apache HttpClient"},{"url":"#http-client---okhttp","title":"HTTP Client - OkHttp"},{"url":"#redis---jedis","title":"Redis - Jedis"},{"url":"#redis---lettuce","title":"Redis - Lettuce"},{"url":"#mongodb","title":"MongoDB"},{"url":"#rabbitmq","title":"RabbitMQ"},{"url":"#webflux-reactive","title":"WebFlux (Reactive)"}]},{"url":"#高级配置-1","title":"高级配置","items":[{"url":"#自定义采样策略","title":"自定义采样策略","items":[{"url":"#使用自定义采样器","title":"使用自定义采样器"}]},{"url":"#多-exporter-配置","title":"多 Exporter 配置"},{"url":"#性能优化配置","title":"性能优化配置"},{"url":"#资源检测","title":"资源检测"},{"url":"#禁用特定埋点库","title":"禁用特定埋点库"},{"url":"#自定义属性添加","title":"自定义属性添加"}]},{"url":"#最佳实践","title":"最佳实践","items":[{"url":"#1-使用-java-agent推荐","title":"1. 使用 Java Agent（推荐）"},{"url":"#2-context-传播","title":"2. Context 传播"},{"url":"#3-使用-try-with-resources","title":"3. 使用 try-with-resources"},{"url":"#4-错误处理","title":"4. 错误处理"},{"url":"#5-属性命名","title":"5. 属性命名"},{"url":"#6-避免过度埋点","title":"6. 避免过度埋点"},{"url":"#7-资源管理","title":"7. 资源管理"},{"url":"#8-spring-boot-集成","title":"8. Spring Boot 集成"}]},{"url":"#故障排查","title":"故障排查","items":[{"url":"#常见问题","title":"常见问题","items":[{"url":"#1-数据未发送到后端","title":"1. 数据未发送到后端"},{"url":"#2-span-未关联","title":"2. Span 未关联"},{"url":"#3-内存泄漏","title":"3. 内存泄漏"},{"url":"#4-高-cpu-使用率","title":"4. 高 CPU 使用率"},{"url":"#5-框架未自动埋点","title":"5. 框架未自动埋点"},{"url":"#6-spring-boot-集成问题","title":"6. Spring Boot 集成问题"},{"url":"#7-认证失败","title":"7. 认证失败"}]},{"url":"#调试技巧","title":"调试技巧","items":[{"url":"#1-启用详细日志","title":"1. 启用详细日志"},{"url":"#2-使用-console-exporter","title":"2. 使用 Console Exporter"},{"url":"#3-检查-java-agent-加载","title":"3. 检查 Java Agent 加载"},{"url":"#4-使用-jvm-参数","title":"4. 使用 JVM 参数"},{"url":"#5-检查埋点库状态","title":"5. 检查埋点库状态"}]},{"url":"#环境变量完整示例","title":"环境变量完整示例"}]},{"url":"#下一步","title":"下一步"},{"url":"#参考资源","title":"参考资源"}]}]}}},"pageContext":{"id":"f9f9270c-c19c-58ac-a480-d300b98f54d6"}},
    "staticQueryHashes": ["1122327541","1339625561","148928582","2007862104","2140385554","3442269102","4275725850"]}