{
    "componentChunkName": "component---node-modules-shenhh-smooth-doc-src-templates-doc-js",
    "path": "/docs/getting-started/dsn-configuration/",
    "result": {"data":{"mdx":{"fields":{"pageType":"doc","title":"DSN 配置说明","editLink":"https://gitlab.corp.youdao.com/DevOPS/apm/docs/edit/master/pages/docs/getting-started/dsn-configuration.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\": \"DSN 配置说明\",\n  \"section\": \"快速开始\",\n  \"slug\": \"/docs/getting-started/dsn-configuration/\",\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\": \"dsn-配置说明\"\n  }, mdx(\"a\", {\n    parentName: \"h1\",\n    \"href\": \"#dsn-%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E\",\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  }))), \"DSN \\u914D\\u7F6E\\u8BF4\\u660E\"), mdx(\"p\", null, \"DSN\\uFF08Data Source Name\\uFF09\\u662F\\u8FDE\\u63A5 APM \\u5E73\\u53F0\\u7684\\u51ED\\u8BC1\\u5B57\\u7B26\\u4E32\\uFF0C\\u5305\\u542B\\u4E86\\u8BA4\\u8BC1\\u548C\\u8FDE\\u63A5\\u6240\\u9700\\u7684\\u6240\\u6709\\u4FE1\\u606F\\u3002\\u672C\\u6587\\u5C06\\u8BE6\\u7EC6\\u4ECB\\u7ECD\\u5982\\u4F55\\u83B7\\u53D6\\u3001\\u914D\\u7F6E\\u548C\\u4F7F\\u7528 DSN\\u3002\"), mdx(\"h2\", {\n    \"id\": \"什么是-dsn\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E4%BB%80%E4%B9%88%E6%98%AF-dsn\",\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  }))), \"\\u4EC0\\u4E48\\u662F DSN\\uFF1F\"), mdx(\"p\", null, \"DSN \\u662F\\u4E00\\u4E2A\\u5305\\u542B\\u8FDE\\u63A5\\u4FE1\\u606F\\u7684\\u5B57\\u7B26\\u4E32\\uFF0C\\u7C7B\\u4F3C\\u4E8E\\u6570\\u636E\\u5E93\\u8FDE\\u63A5\\u4E32\\u3002\\u5B83\\u5305\\u542B\\uFF1A\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u534F\\u8BAE\\u7C7B\\u578B\"), \": http \\u6216 https\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u8BA4\\u8BC1\\u4FE1\\u606F\"), \": \\u9879\\u76EE ID \\u548C\\u5BC6\\u94A5\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u670D\\u52A1\\u5730\\u5740\"), \": APM \\u5E73\\u53F0\\u7684 endpoint\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"\\u53EF\\u9009\\u53C2\\u6570\"), \": \\u5982\\u9879\\u76EE\\u540D\\u79F0\\u3001\\u73AF\\u5883\\u7B49\")), mdx(\"h3\", {\n    \"id\": \"dsn-格式\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#dsn-%E6%A0%BC%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  }))), \"DSN \\u683C\\u5F0F\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"https://<token>@<endpoint>/<project_id>?grpc=<port>\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u793A\\u4F8B\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"https://abc123def456@api.uptrace.dev/1234\\nhttps://token@apm-platform.com:443/project1?grpc=4317\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5185\\u90E8\\u5E73\\u53F0\\u793A\\u4F8B\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"https://abc123def456@uptrace-grpc.yodao.cn/1234?grpc=4317\\n\")), mdx(\"h2\", {\n    \"id\": \"获取-dsn\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E8%8E%B7%E5%8F%96-dsn\",\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  }))), \"\\u83B7\\u53D6 DSN\"), mdx(\"h3\", {\n    \"id\": \"方法-1-从-apm-平台控制台获取\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-1-%E4%BB%8E-apm-%E5%B9%B3%E5%8F%B0%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%8E%B7%E5%8F%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 1: \\u4ECE APM \\u5E73\\u53F0\\u63A7\\u5236\\u53F0\\u83B7\\u53D6\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u767B\\u5F55 APM \\u5E73\\u53F0\\u63A7\\u5236\\u53F0\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5185\\u90E8\\u5E73\\u53F0\\uFF1A\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://uptrace.inner.youdao.com/\"\n  }, \"https://uptrace.inner.youdao.com/\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u9009\\u62E9\\u9879\\u76EE\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u8FDB\\u5165\\u9879\\u76EE\\u8BBE\\u7F6E\\u9875\\u9762\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5728\\\"\\u8FDE\\u63A5\\u8BE6\\u60C5\\\"\\u6216\\\"Connection Details\\\"\\u90E8\\u5206\\u627E\\u5230 DSN\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u70B9\\u51FB\\\"\\u663E\\u793A DSN\\\"\\u6309\\u94AE\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u590D\\u5236 DSN \\u5B57\\u7B26\\u4E32\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u8BE6\\u7EC6\\u6B65\\u9AA4\\u8BF7\\u53C2\\u8003\"), \"\\uFF1A\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/docs/uptrace/dsn/\"\n  }, \"DSN \\u914D\\u7F6E\\u4E0E\\u67E5\\u770B\")), mdx(\"h3\", {\n    \"id\": \"方法-2-联系平台管理员\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-2-%E8%81%94%E7%B3%BB%E5%B9%B3%E5%8F%B0%E7%AE%A1%E7%90%86%E5%91%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  }))), \"\\u65B9\\u6CD5 2: \\u8054\\u7CFB\\u5E73\\u53F0\\u7BA1\\u7406\\u5458\"), mdx(\"p\", null, \"\\u5982\\u679C\\u60A8\\u65E0\\u6CD5\\u8BBF\\u95EE\\u63A7\\u5236\\u53F0\\uFF0C\\u8BF7\\u8054\\u7CFB\\u60A8\\u7684\\u5E73\\u53F0\\u7BA1\\u7406\\u5458\\u83B7\\u53D6 DSN\\u3002\"), mdx(\"h3\", {\n    \"id\": \"方法-3-使用-api-生成\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-3-%E4%BD%BF%E7%94%A8-api-%E7%94%9F%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  }))), \"\\u65B9\\u6CD5 3: \\u4F7F\\u7528 API \\u751F\\u6210\"), mdx(\"p\", null, \"\\u67D0\\u4E9B\\u5E73\\u53F0\\u652F\\u6301\\u901A\\u8FC7 API \\u751F\\u6210 DSN\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"curl -X POST https://your-apm-platform.com/api/v1/projects/1234/dsn \\\\\\n  -H \\\"Authorization: Bearer YOUR_API_KEY\\\" \\\\\\n  -H \\\"Content-Type: application/json\\\" \\\\\\n  -d '{\\n    \\\"name\\\": \\\"production-service\\\",\\n    \\\"environment\\\": \\\"production\\\"\\n  }'\\n\")), mdx(\"h2\", {\n    \"id\": \"dsn-的组成部分\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#dsn-%E7%9A%84%E7%BB%84%E6%88%90%E9%83%A8%E5%88%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  }))), \"DSN \\u7684\\u7EC4\\u6210\\u90E8\\u5206\"), mdx(\"h3\", {\n    \"id\": \"1-token令牌\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#1-token%E4%BB%A4%E7%89%8C\",\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. Token\\uFF08\\u4EE4\\u724C\\uFF09\"), mdx(\"p\", null, \"\\u7528\\u4E8E\\u8BA4\\u8BC1\\u7684\\u5BC6\\u94A5\\uFF0C\\u901A\\u5E38\\u662F\\u4E00\\u4E2A\\u968F\\u673A\\u5B57\\u7B26\\u4E32\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"abc123def456\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5B89\\u5168\\u5EFA\\u8BAE\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4E0D\\u8981\\u5728\\u4EE3\\u7801\\u4E2D\\u786C\\u7F16\\u7801 DSN\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4E0D\\u8981\\u63D0\\u4EA4 DSN \\u5230\\u7248\\u672C\\u63A7\\u5236\\u7CFB\\u7EDF\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F7F\\u7528\\u73AF\\u5883\\u53D8\\u91CF\\u6216\\u5BC6\\u94A5\\u7BA1\\u7406\\u670D\\u52A1\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5B9A\\u671F\\u8F6E\\u6362 Token\")), mdx(\"h3\", {\n    \"id\": \"2-endpoint服务地址\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#2-endpoint%E6%9C%8D%E5%8A%A1%E5%9C%B0%E5%9D%80\",\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. Endpoint\\uFF08\\u670D\\u52A1\\u5730\\u5740\\uFF09\"), mdx(\"p\", null, \"APM \\u5E73\\u53F0\\u7684\\u670D\\u52A1\\u5730\\u5740\\uFF1A\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5185\\u90E8\\u5E73\\u53F0\"), \"\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"uptrace-grpc.yodao.cn    # HTTP \\u7AEF\\u70B9\\nuptrace-grpc.yodao.cn:4317  # gRPC \\u7AEF\\u70B9\\uFF08\\u63A8\\u8350\\uFF09\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5176\\u4ED6\\u5E73\\u53F0\\u793A\\u4F8B\"), \"\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"api.uptrace.dev\\napm-platform.com\\ntellus.corp.youdao.com\\n\")), mdx(\"h3\", {\n    \"id\": \"3-project-id项目-id\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#3-project-id%E9%A1%B9%E7%9B%AE-id\",\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. Project ID\\uFF08\\u9879\\u76EE ID\\uFF09\"), mdx(\"p\", null, \"\\u6807\\u8BC6\\u60A8\\u7684\\u9879\\u76EE\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"1234\\nproject-prod\\nmy-service\\n\")), mdx(\"h3\", {\n    \"id\": \"4-可选参数\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#4-%E5%8F%AF%E9%80%89%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. \\u53EF\\u9009\\u53C2\\u6570\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"grpc \\u7AEF\\u53E3\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"?grpc=4317\\n\")), mdx(\"p\", null, \"\\u6307\\u5B9A gRPC \\u534F\\u8BAE\\u7684\\u7AEF\\u53E3\\uFF08OTLP over gRPC\\uFF09\\u3002\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u591A\\u4E2A\\u53C2\\u6570\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"?grpc=4317&env=production&region=us-east-1\\n\")), mdx(\"h2\", {\n    \"id\": \"配置-dsn\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E9%85%8D%E7%BD%AE-dsn\",\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  }))), \"\\u914D\\u7F6E DSN\"), mdx(\"h3\", {\n    \"id\": \"方法-1-使用环境变量推荐\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-1-%E4%BD%BF%E7%94%A8%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%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  }))), \"\\u65B9\\u6CD5 1: \\u4F7F\\u7528\\u73AF\\u5883\\u53D8\\u91CF\\uFF08\\u63A8\\u8350\\uFF09\"), mdx(\"p\", null, \"\\u6700\\u5B89\\u5168\\u548C\\u7075\\u6D3B\\u7684\\u65B9\\u5F0F\\u662F\\u4F7F\\u7528\\u73AF\\u5883\\u53D8\\u91CF\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u76F4\\u63A5\\u8BBE\\u7F6E DSN\\uFF08\\u5185\\u90E8\\u5E73\\u53F0\\u793A\\u4F8B\\uFF09\\nexport UPTRACE_DSN=\\\"https://abc123@uptrace-grpc.yodao.cn/1234?grpc=4317\\\"\\n\\n# \\u6216\\u8005\\u901A\\u8FC7 OTLP Headers \\u4F20\\u9012\\uFF08\\u63A8\\u8350\\uFF09\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=\\\"uptrace-grpc.yodao.cn:4317\\\"\\nexport OTEL_EXPORTER_OTLP_PROTOCOL=\\\"grpc\\\"\\nexport OTEL_EXPORTER_OTLP_HEADERS=\\\"uptrace-dsn=https://abc123@uptrace-grpc.yodao.cn/1234?grpc=4317\\\"\\n\\n# \\u4F7F\\u7528 HTTP \\u7AEF\\u70B9\\uFF08\\u5982\\u679C gRPC \\u7AEF\\u53E3\\u88AB\\u9650\\u5236\\uFF09\\nexport OTEL_EXPORTER_OTLP_ENDPOINT=\\\"https://uptrace-grpc.yodao.cn\\\"\\nexport OTEL_EXPORTER_OTLP_PROTOCOL=\\\"http/protobuf\\\"\\nexport OTEL_EXPORTER_OTLP_HEADERS=\\\"uptrace-dsn=https://abc123@uptrace-grpc.yodao.cn/1234?grpc=4317\\\"\\n\")), mdx(\"h3\", {\n    \"id\": \"方法-2-配置文件\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-2-%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\\u6CD5 2: \\u914D\\u7F6E\\u6587\\u4EF6\"), mdx(\"p\", null, \"\\u521B\\u5EFA\\u914D\\u7F6E\\u6587\\u4EF6\\uFF08\\u5982 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".env\"), \"\\uFF09:\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-env\"\n  }, \"# .env\\nUPTRACE_DSN=https://abc123@api.uptrace.dev/1234?grpc=4317\\nOTEL_SERVICE_NAME=my-service\\nOTEL_SERVICE_VERSION=1.0.0\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u52A0\\u8F7D\\u914D\\u7F6E\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u4F7F\\u7528 dotenv\\nsource .env\\n\\n# \\u6216\\u5728\\u5E94\\u7528\\u542F\\u52A8\\u65F6\\u52A0\\u8F7D\\nexport $(cat .env | xargs)\\n\")), mdx(\"h3\", {\n    \"id\": \"方法-3-密钥管理服务\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%96%B9%E6%B3%95-3-%E5%AF%86%E9%92%A5%E7%AE%A1%E7%90%86%E6%9C%8D%E5%8A%A1\",\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 3: \\u5BC6\\u94A5\\u7BA1\\u7406\\u670D\\u52A1\"), mdx(\"p\", null, \"\\u5BF9\\u4E8E\\u751F\\u4EA7\\u73AF\\u5883\\uFF0C\\u5EFA\\u8BAE\\u4F7F\\u7528\\u5BC6\\u94A5\\u7BA1\\u7406\\u670D\\u52A1\\uFF1A\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"AWS Secrets Manager\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export UPTRACE_DSN=$(aws secretsmanager get-secret-value \\\\\\n  --secret-id prod/apm/dsn \\\\\\n  --query SecretString \\\\\\n  --output text)\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"HashiCorp Vault\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export UPTRACE_DSN=$(vault kv get -field=dsn secret/apm/production)\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Kubernetes Secret\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yaml\"\n  }, \"apiVersion: v1\\nkind: Secret\\nmetadata:\\n  name: apm-credentials\\ntype: Opaque\\nstringData:\\n  dsn: \\\"https://abc123@api.uptrace.dev/1234?grpc=4317\\\"\\n---\\napiVersion: v1\\nkind: Pod\\nmetadata:\\n  name: my-app\\nspec:\\n  containers:\\n  - name: app\\n    image: my-app:latest\\n    env:\\n    - name: UPTRACE_DSN\\n      valueFrom:\\n        secretKeyRef:\\n          name: apm-credentials\\n          key: dsn\\n\")), mdx(\"h2\", {\n    \"id\": \"在不同语言中使用-dsn\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E5%9C%A8%E4%B8%8D%E5%90%8C%E8%AF%AD%E8%A8%80%E4%B8%AD%E4%BD%BF%E7%94%A8-dsn\",\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\\u4E0D\\u540C\\u8BED\\u8A00\\u4E2D\\u4F7F\\u7528 DSN\"), mdx(\"h3\", {\n    \"id\": \"go\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#go\",\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  }))), \"Go\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-go\"\n  }, \"import (\\n    \\\"os\\\"\\n    \\\"github.com/uptrace/uptrace-go/uptrace\\\"\\n)\\n\\nfunc main() {\\n    // \\u4ECE\\u73AF\\u5883\\u53D8\\u91CF\\u8BFB\\u53D6\\n    dsn := os.Getenv(\\\"UPTRACE_DSN\\\")\\n    \\n    uptrace.ConfigureOpentelemetry(\\n        uptrace.WithDSN(dsn),\\n        uptrace.WithServiceName(\\\"my-service\\\"),\\n    )\\n    defer uptrace.Shutdown(context.Background())\\n    \\n    // ... \\u5E94\\u7528\\u4EE3\\u7801\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"python\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#python\",\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  }))), \"Python\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-python\"\n  }, \"import os\\nfrom opentelemetry import trace\\nfrom opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter\\nfrom opentelemetry.sdk.trace import TracerProvider\\nfrom opentelemetry.sdk.trace.export import BatchSpanProcessor\\n\\n# \\u89E3\\u6790 DSN\\ndsn = os.environ.get(\\\"UPTRACE_DSN\\\")\\n\\n# \\u6216\\u4F7F\\u7528 uptrace \\u5E93\\n# import uptrace\\n# uptrace.configure_opentelemetry(dsn=dsn)\\n\\n# \\u624B\\u52A8\\u914D\\u7F6E OTLP Exporter\\nexporter = OTLPSpanExporter(\\n    endpoint=\\\"api.uptrace.dev:4317\\\",\\n    headers=((\\\"uptrace-dsn\\\", dsn),)\\n)\\n\\nprovider = TracerProvider()\\nprovider.add_span_processor(BatchSpanProcessor(exporter))\\ntrace.set_tracer_provider(provider)\\n\")), mdx(\"h3\", {\n    \"id\": \"java\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#java\",\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\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-java\"\n  }, \"import io.opentelemetry.api.OpenTelemetry;\\nimport io.opentelemetry.sdk.OpenTelemetrySdk;\\nimport io.opentelemetry.sdk.trace.SdkTracerProvider;\\nimport io.opentelemetry.sdk.trace.export.BatchSpanProcessor;\\nimport io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;\\n\\npublic class Application {\\n    public static void main(String[] args) {\\n        String dsn = System.getenv(\\\"UPTRACE_DSN\\\");\\n        \\n        OtlpGrpcSpanExporter spanExporter = OtlpGrpcSpanExporter.builder()\\n            .setEndpoint(\\\"uptrace-grpc.yodao.cn:4317\\\")\\n            .addHeader(\\\"uptrace-dsn\\\", dsn)\\n            .build();\\n\\n        SdkTracerProvider tracerProvider = SdkTracerProvider.builder()\\n            .addSpanProcessor(BatchSpanProcessor.builder(spanExporter).build())\\n            .build();\\n\\n        OpenTelemetry openTelemetry = OpenTelemetrySdk.builder()\\n            .setTracerProvider(tracerProvider)\\n            .build();\\n    }\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"javascript--nodejs\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#javascript--nodejs\",\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  }))), \"JavaScript / Node.js\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');\\nconst { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-grpc');\\nconst { BatchSpanProcessor } = require('@opentelemetry/sdk-trace-base');\\n\\nconst dsn = process.env.UPTRACE_DSN;\\n\\nconst exporter = new OTLPTraceExporter({\\n  url: 'uptrace-grpc.yodao.cn:4317',\\n  headers: {\\n    'uptrace-dsn': dsn,\\n  },\\n});\\n\\nconst provider = new NodeTracerProvider();\\nprovider.addSpanProcessor(new BatchSpanProcessor(exporter));\\nprovider.register();\\n\")), mdx(\"h3\", {\n    \"id\": \"net\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#net\",\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  }))), \".NET\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-csharp\"\n  }, \"using System;\\nusing OpenTelemetry;\\nusing OpenTelemetry.Trace;\\nusing OpenTelemetry.Exporter;\\n\\nvar dsn = Environment.GetEnvironmentVariable(\\\"UPTRACE_DSN\\\");\\n\\nvar tracerProvider = Sdk.CreateTracerProviderBuilder()\\n    .AddOtlpExporter(options =>\\n    {\\n        options.Endpoint = new Uri(\\\"uptrace-grpc.yodao.cn:4317\\\");\\n        options.Headers = $\\\"uptrace-dsn={dsn}\\\";\\n    })\\n    .Build();\\n\")), mdx(\"h2\", {\n    \"id\": \"环境特定配置\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E7%8E%AF%E5%A2%83%E7%89%B9%E5%AE%9A%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\\u7279\\u5B9A\\u914D\\u7F6E\"), mdx(\"h3\", {\n    \"id\": \"开发环境\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83\",\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  }))), \"\\u5F00\\u53D1\\u73AF\\u5883\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# .env.development\\nUPTRACE_DSN=https://dev-token@dev.apm-platform.com/dev-project\\nOTEL_SERVICE_NAME=my-service-dev\\nOTEL_TRACES_SAMPLER_ARG=1.0  # 100% \\u91C7\\u6837\\nOTEL_LOG_LEVEL=debug\\n\")), mdx(\"h3\", {\n    \"id\": \"测试环境\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83\",\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  }))), \"\\u6D4B\\u8BD5\\u73AF\\u5883\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# .env.test\\nUPTRACE_DSN=https://test-token@test.apm-platform.com/test-project\\nOTEL_SERVICE_NAME=my-service-test\\nOTEL_TRACES_SAMPLER_ARG=0.5  # 50% \\u91C7\\u6837\\nOTEL_LOG_LEVEL=info\\n\")), mdx(\"h3\", {\n    \"id\": \"生产环境\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83\",\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  }))), \"\\u751F\\u4EA7\\u73AF\\u5883\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# .env.production\\nUPTRACE_DSN=https://prod-token@api.apm-platform.com/prod-project\\nOTEL_SERVICE_NAME=my-service\\nOTEL_TRACES_SAMPLER_ARG=0.1  # 10% \\u91C7\\u6837\\nOTEL_LOG_LEVEL=warn\\n\")), mdx(\"h2\", {\n    \"id\": \"dsn-验证\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#dsn-%E9%AA%8C%E8%AF%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  }))), \"DSN \\u9A8C\\u8BC1\"), mdx(\"h3\", {\n    \"id\": \"验证-dsn-格式\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E9%AA%8C%E8%AF%81-dsn-%E6%A0%BC%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  }))), \"\\u9A8C\\u8BC1 DSN \\u683C\\u5F0F\"), mdx(\"p\", null, \"\\u4F7F\\u7528\\u4EE5\\u4E0B\\u811A\\u672C\\u9A8C\\u8BC1 DSN \\u683C\\u5F0F\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"#!/bin/bash\\nDSN=\\\"$1\\\"\\n\\nif [[ $DSN =~ ^https?://[^@]+@[^/]+/[^?]+ ]]; then\\n    echo \\\"\\u2713 DSN format is valid\\\"\\n    \\n    # \\u63D0\\u53D6\\u7EC4\\u4EF6\\n    PROTOCOL=$(echo \\\"$DSN\\\" | grep -oP '^https?')\\n    TOKEN=$(echo \\\"$DSN\\\" | grep -oP '://\\\\K[^@]+')\\n    ENDPOINT=$(echo \\\"$DSN\\\" | grep -oP '@\\\\K[^/]+')\\n    PROJECT=$(echo \\\"$DSN\\\" | grep -oP '/\\\\K[^?]+')\\n    \\n    echo \\\"Protocol: $PROTOCOL\\\"\\n    echo \\\"Token: ${TOKEN:0:8}...\\\"\\n    echo \\\"Endpoint: $ENDPOINT\\\"\\n    echo \\\"Project: $PROJECT\\\"\\nelse\\n    echo \\\"\\u2717 Invalid DSN format\\\"\\n    exit 1\\nfi\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u4F7F\\u7528\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"./validate-dsn.sh \\\"https://abc123@api.uptrace.dev/1234\\\"\\n\")), mdx(\"h3\", {\n    \"id\": \"测试连接\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E6%B5%8B%E8%AF%95%E8%BF%9E%E6%8E%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  }))), \"\\u6D4B\\u8BD5\\u8FDE\\u63A5\"), mdx(\"p\", null, \"\\u53D1\\u9001\\u6D4B\\u8BD5\\u6570\\u636E\\u9A8C\\u8BC1 DSN\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"# \\u4F7F\\u7528 curl \\u6D4B\\u8BD5\\ncurl -X POST https://api.uptrace.dev:4318/v1/traces \\\\\\n  -H \\\"Content-Type: application/json\\\" \\\\\\n  -H \\\"uptrace-dsn: https://abc123@api.uptrace.dev/1234\\\" \\\\\\n  -d '{\\n    \\\"resourceSpans\\\": [{\\n      \\\"resource\\\": {\\n        \\\"attributes\\\": [{\\n          \\\"key\\\": \\\"service.name\\\",\\n          \\\"value\\\": {\\\"stringValue\\\": \\\"test-service\\\"}\\n        }]\\n      },\\n      \\\"scopeSpans\\\": []\\n    }]\\n  }'\\n\")), mdx(\"h2\", {\n    \"id\": \"常见问题\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\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(\"h3\", {\n    \"id\": \"1-dsn-无效或已过期\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#1-dsn-%E6%97%A0%E6%95%88%E6%88%96%E5%B7%B2%E8%BF%87%E6%9C%9F\",\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. DSN \\u65E0\\u6548\\u6216\\u5DF2\\u8FC7\\u671F\"), 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(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5 DSN \\u683C\\u5F0F\\u662F\\u5426\\u6B63\\u786E\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u786E\\u8BA4 Token \\u662F\\u5426\\u6709\\u6548\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u91CD\\u65B0\\u751F\\u6210 DSN\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5 DSN \\u662F\\u5426\\u5DF2\\u88AB\\u64A4\\u9500\")), mdx(\"h3\", {\n    \"id\": \"2-网络连接问题\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#2-%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%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  }))), \"2. \\u7F51\\u7EDC\\u8FDE\\u63A5\\u95EE\\u9898\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u9519\\u8BEF\\u4FE1\\u606F\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"failed to connect to endpoint: connection refused\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u89E3\\u51B3\\u65B9\\u6848\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5 endpoint \\u5730\\u5740\\u662F\\u5426\\u6B63\\u786E\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u786E\\u8BA4\\u7F51\\u7EDC\\u8FDE\\u63A5\\u662F\\u5426\\u6B63\\u5E38\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5\\u9632\\u706B\\u5899\\u89C4\\u5219\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u9A8C\\u8BC1\\u7AEF\\u53E3\\u662F\\u5426\\u6B63\\u786E\\uFF08gRPC: 4317, HTTP: 4318\\uFF09\")), mdx(\"h3\", {\n    \"id\": \"3-权限不足\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#3-%E6%9D%83%E9%99%90%E4%B8%8D%E8%B6%B3\",\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. \\u6743\\u9650\\u4E0D\\u8DB3\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u9519\\u8BEF\\u4FE1\\u606F\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"permission denied: insufficient privileges\\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 DSN \\u5BF9\\u5E94\\u7684\\u9879\\u76EE\\u6743\\u9650\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5\\u662F\\u5426\\u6709\\u5199\\u5165\\u6743\\u9650\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u5206\\u914D\\u6B63\\u786E\\u7684\\u6743\\u9650\")), mdx(\"h3\", {\n    \"id\": \"4-项目不存在\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#4-%E9%A1%B9%E7%9B%AE%E4%B8%8D%E5%AD%98%E5%9C%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  }))), \"4. \\u9879\\u76EE\\u4E0D\\u5B58\\u5728\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u9519\\u8BEF\\u4FE1\\u606F\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"project not found\\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 Project ID \\u662F\\u5426\\u6B63\\u786E\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u68C0\\u67E5\\u9879\\u76EE\\u662F\\u5426\\u5DF2\\u88AB\\u5220\\u9664\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u786E\\u8BA4\\u9879\\u76EE\\u72B6\\u6001\")), mdx(\"h2\", {\n    \"id\": \"安全最佳实践\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#%E5%AE%89%E5%85%A8%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  }))), \"\\u5B89\\u5168\\u6700\\u4F73\\u5B9E\\u8DF5\"), mdx(\"h3\", {\n    \"id\": \"1-不要硬编码-dsn\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#1-%E4%B8%8D%E8%A6%81%E7%A1%AC%E7%BC%96%E7%A0%81-dsn\",\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. \\u4E0D\\u8981\\u786C\\u7F16\\u7801 DSN\"), mdx(\"p\", null, \"\\u274C \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u9519\\u8BEF\\u505A\\u6CD5\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-go\"\n  }, \"// \\u4E0D\\u8981\\u8FD9\\u6837\\u505A\\uFF01\\ndsn := \\\"https://abc123@api.uptrace.dev/1234\\\"\\n\")), mdx(\"p\", null, \"\\u2705 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u6B63\\u786E\\u505A\\u6CD5\"), \":\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-go\"\n  }, \"dsn := os.Getenv(\\\"UPTRACE_DSN\\\")\\nif dsn == \\\"\\\" {\\n    log.Fatal(\\\"UPTRACE_DSN environment variable is required\\\")\\n}\\n\")), mdx(\"h3\", {\n    \"id\": \"2-不要提交-dsn-到版本控制\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#2-%E4%B8%8D%E8%A6%81%E6%8F%90%E4%BA%A4-dsn-%E5%88%B0%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%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  }))), \"2. \\u4E0D\\u8981\\u63D0\\u4EA4 DSN \\u5230\\u7248\\u672C\\u63A7\\u5236\"), mdx(\"p\", null, \"\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".gitignore\"), \" \\u4E2D\\u6DFB\\u52A0\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-gitignore\"\n  }, \".env\\n.env.*\\n*.local\\nsecrets/\\n\")), mdx(\"h3\", {\n    \"id\": \"3-使用不同的-dsn-for-不同环境\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#3-%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84-dsn-for-%E4%B8%8D%E5%90%8C%E7%8E%AF%E5%A2%83\",\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\\u4E0D\\u540C\\u7684 DSN for \\u4E0D\\u540C\\u73AF\\u5883\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5F00\\u53D1\\u73AF\\u5883\\u4F7F\\u7528\\u5F00\\u53D1 DSN\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u6D4B\\u8BD5\\u73AF\\u5883\\u4F7F\\u7528\\u6D4B\\u8BD5 DSN\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u751F\\u4EA7\\u73AF\\u5883\\u4F7F\\u7528\\u751F\\u4EA7 DSN\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u6BCF\\u4E2A\\u73AF\\u5883\\u7684 DSN \\u6743\\u9650\\u9694\\u79BB\")), mdx(\"h3\", {\n    \"id\": \"4-定期轮换-token\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#4-%E5%AE%9A%E6%9C%9F%E8%BD%AE%E6%8D%A2-token\",\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. \\u5B9A\\u671F\\u8F6E\\u6362 Token\"), mdx(\"p\", null, \"\\u5EFA\\u8BAE\\u6BCF 90 \\u5929\\u8F6E\\u6362\\u4E00\\u6B21 Token\\uFF1A\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u751F\\u6210\\u65B0\\u7684 DSN\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u66F4\\u65B0\\u73AF\\u5883\\u53D8\\u91CF\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u9A8C\\u8BC1\\u65B0 DSN \\u5DE5\\u4F5C\\u6B63\\u5E38\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u64A4\\u9500\\u65E7\\u7684 DSN\")), mdx(\"h3\", {\n    \"id\": \"5-限制-dsn-的访问范围\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#5-%E9%99%90%E5%88%B6-dsn-%E7%9A%84%E8%AE%BF%E9%97%AE%E8%8C%83%E5%9B%B4\",\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. \\u9650\\u5236 DSN \\u7684\\u8BBF\\u95EE\\u8303\\u56F4\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4EC5\\u6388\\u4E88\\u5FC5\\u8981\\u7684\\u6743\\u9650\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F7F\\u7528\\u53EA\\u8BFB DSN \\u7528\\u4E8E\\u67E5\\u8BE2\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F7F\\u7528\\u5199\\u5165 DSN \\u7528\\u4E8E\\u6570\\u636E\\u91C7\\u96C6\")), mdx(\"h3\", {\n    \"id\": \"6-监控-dsn-使用情况\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#6-%E7%9B%91%E6%8E%A7-dsn-%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%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  }))), \"6. \\u76D1\\u63A7 DSN \\u4F7F\\u7528\\u60C5\\u51B5\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8BB0\\u5F55 DSN \\u7684\\u4F7F\\u7528\\u65E5\\u5FD7\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u76D1\\u63A7\\u5F02\\u5E38\\u7684\\u8BBF\\u95EE\\u6A21\\u5F0F\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u8BBE\\u7F6E\\u544A\\u8B66\\u89C4\\u5219\")), mdx(\"h2\", {\n    \"id\": \"dsn-与-otlp-配置的关系\"\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#dsn-%E4%B8%8E-otlp-%E9%85%8D%E7%BD%AE%E7%9A%84%E5%85%B3%E7%B3%BB\",\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  }))), \"DSN \\u4E0E OTLP \\u914D\\u7F6E\\u7684\\u5173\\u7CFB\"), mdx(\"h3\", {\n    \"id\": \"使用-dsnuptrace-专用\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E4%BD%BF%E7%94%A8-dsnuptrace-%E4%B8%93%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  }))), \"\\u4F7F\\u7528 DSN\\uFF08uptrace \\u4E13\\u7528\\uFF09\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export UPTRACE_DSN=\\\"https://abc123@api.uptrace.dev/1234?grpc=4317\\\"\\n\")), mdx(\"p\", null, \"\\u7B49\\u4EF7\\u4E8E\\uFF1A\"), mdx(\"h3\", {\n    \"id\": \"使用标准-otlp-配置\"\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#%E4%BD%BF%E7%94%A8%E6%A0%87%E5%87%86-otlp-%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  }))), \"\\u4F7F\\u7528\\u6807\\u51C6 OTLP \\u914D\\u7F6E\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"export OTEL_EXPORTER_OTLP_ENDPOINT=\\\"uptrace-grpc.yodao.cn:4317\\\"\\nexport OTEL_EXPORTER_OTLP_PROTOCOL=\\\"grpc\\\"\\nexport OTEL_EXPORTER_OTLP_HEADERS=\\\"uptrace-dsn=https://abc123@api.uptrace.dev/1234\\\"\\n\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u63A8\\u8350\\u505A\\u6CD5\"), \":\"), mdx(\"p\", null, \"\\u5982\\u679C\\u4F7F\\u7528 uptrace SDK\\uFF0C\\u4F7F\\u7528 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"UPTRACE_DSN\"), \"\\u3002\"), mdx(\"p\", null, \"\\u5982\\u679C\\u4F7F\\u7528\\u7EAF OpenTelemetry SDK\\uFF0C\\u4F7F\\u7528\\u6807\\u51C6 OTLP \\u914D\\u7F6E\\u3002\"), 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(\"p\", null, \"\\u73B0\\u5728\\u60A8\\u5DF2\\u7ECF\\u4E86\\u89E3\\u4E86 DSN \\u7684\\u914D\\u7F6E\\u65B9\\u6CD5\\uFF0C\\u63A5\\u4E0B\\u6765\\uFF1A\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\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: \"ol\"\n  }, \"\\u9009\\u62E9\\u60A8\\u7684\\u8BED\\u8A00\\u5F00\\u59CB\\u63A5\\u5165\\uFF1A\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/golang/\"\n  }, \"Go \\u8BED\\u8A00\\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/python/\"\n  }, \"Python \\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/java/\"\n  }, \"Java \\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/javascript/\"\n  }, \"JavaScript \\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/dotnet/\"\n  }, \".NET \\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/php/\"\n  }, \"PHP \\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/rust/\"\n  }, \"Rust \\u63A5\\u5165\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/docs/languages/cpp/\"\n  }, \"C++ \\u63A5\\u5165\"))))), 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/specs/otel/protocol/exporter/\"\n  }, \"OpenTelemetry OTLP Exporter\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://uptrace.dev/get/\"\n  }, \"Uptrace Documentation\")), 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\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#dsn-配置说明","title":"DSN 配置说明","items":[{"url":"#什么是-dsn","title":"什么是 DSN？","items":[{"url":"#dsn-格式","title":"DSN 格式"}]},{"url":"#获取-dsn","title":"获取 DSN","items":[{"url":"#方法-1-从-apm-平台控制台获取","title":"方法 1: 从 APM 平台控制台获取"},{"url":"#方法-2-联系平台管理员","title":"方法 2: 联系平台管理员"},{"url":"#方法-3-使用-api-生成","title":"方法 3: 使用 API 生成"}]},{"url":"#dsn-的组成部分","title":"DSN 的组成部分","items":[{"url":"#1-token令牌","title":"1. Token（令牌）"},{"url":"#2-endpoint服务地址","title":"2. Endpoint（服务地址）"},{"url":"#3-project-id项目-id","title":"3. Project ID（项目 ID）"},{"url":"#4-可选参数","title":"4. 可选参数"}]},{"url":"#配置-dsn","title":"配置 DSN","items":[{"url":"#方法-1-使用环境变量推荐","title":"方法 1: 使用环境变量（推荐）"},{"url":"#方法-2-配置文件","title":"方法 2: 配置文件"},{"url":"#方法-3-密钥管理服务","title":"方法 3: 密钥管理服务"}]},{"url":"#在不同语言中使用-dsn","title":"在不同语言中使用 DSN","items":[{"url":"#go","title":"Go"},{"url":"#python","title":"Python"},{"url":"#java","title":"Java"},{"url":"#javascript--nodejs","title":"JavaScript / Node.js"},{"url":"#net","title":".NET"}]},{"url":"#环境特定配置","title":"环境特定配置","items":[{"url":"#开发环境","title":"开发环境"},{"url":"#测试环境","title":"测试环境"},{"url":"#生产环境","title":"生产环境"}]},{"url":"#dsn-验证","title":"DSN 验证","items":[{"url":"#验证-dsn-格式","title":"验证 DSN 格式"},{"url":"#测试连接","title":"测试连接"}]},{"url":"#常见问题","title":"常见问题","items":[{"url":"#1-dsn-无效或已过期","title":"1. DSN 无效或已过期"},{"url":"#2-网络连接问题","title":"2. 网络连接问题"},{"url":"#3-权限不足","title":"3. 权限不足"},{"url":"#4-项目不存在","title":"4. 项目不存在"}]},{"url":"#安全最佳实践","title":"安全最佳实践","items":[{"url":"#1-不要硬编码-dsn","title":"1. 不要硬编码 DSN"},{"url":"#2-不要提交-dsn-到版本控制","title":"2. 不要提交 DSN 到版本控制"},{"url":"#3-使用不同的-dsn-for-不同环境","title":"3. 使用不同的 DSN for 不同环境"},{"url":"#4-定期轮换-token","title":"4. 定期轮换 Token"},{"url":"#5-限制-dsn-的访问范围","title":"5. 限制 DSN 的访问范围"},{"url":"#6-监控-dsn-使用情况","title":"6. 监控 DSN 使用情况"}]},{"url":"#dsn-与-otlp-配置的关系","title":"DSN 与 OTLP 配置的关系","items":[{"url":"#使用-dsnuptrace-专用","title":"使用 DSN（uptrace 专用）"},{"url":"#使用标准-otlp-配置","title":"使用标准 OTLP 配置"}]},{"url":"#下一步","title":"下一步"},{"url":"#参考资源","title":"参考资源"}]}]}}},"pageContext":{"id":"e7aceca1-5cb0-5646-8f80-0ed1b7827162"}},
    "staticQueryHashes": ["1122327541","1339625561","148928582","2007862104","2140385554","3442269102","4275725850"]}