{"componentChunkName":"component---src-templates-doc-tsx","path":"/product/relay/options/","result":{"data":{"file":{"id":"2ac0734d-8a86-53d8-ad02-c06c0a85980b","relativePath":"product/relay/options.mdx","sourceInstanceName":"docs","childMarkdownRemark":null,"childMdx":{"body":"function _extends() { _extends = Object.assign || 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/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Configuration Options\",\n  \"description\": \"Configure Relay to suit the needs of your organization.\",\n  \"sidebar_order\": 3,\n  \"redirect_from\": [\"/meta/relay/options/\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar CodeTabs = makeShortcode(\"CodeTabs\");\nvar CodeBlock = makeShortcode(\"CodeBlock\");\nvar Alert = makeShortcode(\"Alert\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Configuration for Relay is recorded in the file \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \".relay/config.yml\"), \". To change this location, pass the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"--config\"), \" option to any Relay command:\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeBlock, {\n    language: \"shell\",\n    title: \"\",\n    filename: \"\",\n    mdxType: \"CodeBlock\"\n  }, mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"shell\"\n  }), mdx(\"pre\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"language-shell\"\n  }), mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-shell\"\n  }), \"\\u276F ./relay run --config /path/to/folder\")))))), mdx(\"p\", null, \"All configuration keys are \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"snake_case\"), \".\"), mdx(\"h2\", {\n    \"id\": \"relay\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#relay\",\n    \"aria-label\": \"relay permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Relay\"), mdx(\"p\", null, \"The following document the general settings for Relay:\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.mode\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"managed\")), \", possible values: \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"managed\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"static\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"proxy\"), \"\\nand \", mdx(\"inlineCode\", {\n    parentName: \"dd\"\n  }, \"capture\")))), mdx(\"p\", null, \"  Controls how Relay obtains the project configuration for events. For detailed\\nexplanation of these modes, see \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/product/relay/modes/\"\n  }), \"Relay Modes\"), \".\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.upstream\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"https://sentry.io\"))))), mdx(\"p\", null, \"  Fully qualified URL of the upstream Relay or Sentry instance.\"), mdx(Alert, {\n    level: \"warning\",\n    title: \"Important\",\n    mdxType: \"Alert\"\n  }, mdx(\"p\", null, \"  Relay does not check for cycles. Do not set this option to an endpoint\\nthat will cause events to be cycled back here.\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.host\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"0.0.0.0\"), \" in Docker, otherwise \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"127.0.0.1\"))))), mdx(\"p\", null, \"  The host to which Relay should bind (network interface). Example: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"0.0.0.0\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.port\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"3000\"))))), mdx(\"p\", null, \"  The port to bind for the unencrypted Relay HTTP server. Example: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"3000\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.tls_port\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, optional\")))), mdx(\"p\", null, \"  Optional port to bind for the encrypted Relay HTTPS server. Example: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"3001\")), mdx(\"p\", null, \"  This is in addition to the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"port\"), \" option: If you set up a HTTPS server at\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"tls_port\"), \", the HTTP server at \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"port\"), \" still exists.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.tls_identity_path\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, optional\")))), mdx(\"p\", null, \"  The filesystem path to the identity (DER-encoded PKCS12) to use for the HTTPS\\nserver. Relative paths are evaluated in the current working directory.\\nExample: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"relay_dev.pfx\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"relay.tls_identity_password\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, optional\")))), mdx(\"p\", null, \"  Password for the PKCS12 archive in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"relay.tls_identity_path\"), \".\"), mdx(\"h2\", {\n    \"id\": \"http\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#http\",\n    \"aria-label\": \"http permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"HTTP\"), mdx(\"p\", null, \"These settings control the network-related configuration.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"http.timeout\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"5\"))))), mdx(\"p\", null, \"  Timeout for upstream requests in seconds.\"), mdx(\"p\", null, \"  This timeout covers the time from sending the request until receiving response\\nheaders. Neither the connection process and handshakes, nor reading the\\nresponse body is covered in this timeout.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"http.connection_timeout\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"3\"))))), mdx(\"p\", null, \"  Timeout for establishing connections with the upstream in seconds.\"), mdx(\"p\", null, \"  This includes SSL handshakes. Relay reuses connections when the upstream\\nsupports connection keep-alive. Connections are retained for a maximum 75\\nseconds, or 15 seconds of inactivity.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"http.max_retry_interval\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"60\"))))), mdx(\"p\", null, \"  Maximum interval between failed request retries in seconds.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"host.header\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"null\"))))), mdx(\"p\", null, \"  The custom HTTP Host header to be sent to the upstream.\"), mdx(\"h2\", {\n    \"id\": \"caching\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#caching\",\n    \"aria-label\": \"caching permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Caching\"), mdx(\"p\", null, \"These settings fine tune caching of project states.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.project_expiry\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"300\"), \" (5 minutes)\")))), mdx(\"p\", null, \"  The cache timeout for project configurations in seconds. Irrelevant if you use\\nthe \\\"simple proxy mode\\\", where your project config is stored in local files.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.project_grace_period\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"0\"), \" (seconds)\")))), mdx(\"p\", null, \"  Number of seconds to continue using this project configuration after cache\\nexpiry while a new state is being fetched. This is added on top of\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"cache.project_expiry\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"cache.miss_expiry\"), \".\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.relay_expiry\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"3600\"), \" (1 hour)\")))), mdx(\"p\", null, \"  The cache timeout for downstream Relay info (public keys) in seconds. This is\\nonly relevant if you plan to connect further Relays to this one.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.event_expiry\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"600\"), \" (10 minutes)\")))), mdx(\"p\", null, \"  The cache timeout for events (store) before dropping them.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.miss_expiry\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"60\"), \" (1 minute)\")))), mdx(\"p\", null, \"  The cache timeout for non-existing entries.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.batch_interval\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"100\"), \" (100 milliseconds)\")))), mdx(\"p\", null, \"  The buffer timeout for batched queries before sending them upstream \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"in\\nmilliseconds\"), \".\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.batch_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"500\"))))), mdx(\"p\", null, \"  The maximum number of project configs to fetch from Sentry at once.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.file_interval\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"10\"), \" (10 seconds)\")))), mdx(\"p\", null, \"  Interval for watching local cache override files in seconds.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.event_buffer_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"1000\"))))), mdx(\"p\", null, \"  The maximum number of events that are buffered in case of network issues or a\\nhigh rate of incoming events.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"cache.eviction_interval\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"60\"), \" (seconds)\")))), mdx(\"p\", null, \"  Interval for evicting outdated project configs from memory.\"), mdx(\"h2\", {\n    \"id\": \"size-limits\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#size-limits\",\n    \"aria-label\": \"size limits permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Size Limits\"), mdx(\"p\", null, \"These settings control HTTP-related limits. All values are either integers, or are\\nhuman-readable strings of a number and a human-readable unit, such as:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"500B\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1kB\"), \" (\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"1,000\"), \" bytes)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1KB\"), \" or \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1KiB\"), \" (\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"1,024\"), \" bytes)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1MB\"), \" (\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"1,000,000\"), \" bytes)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"1MiB\"), \" (\", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"1,048,576\"), \" bytes)\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_concurrent_requests\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"100\"))))), mdx(\"p\", null, \"  The maximum number of concurrent connections upstream. If supported by\\nthe upstream, Relay supports connection keepalive.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_concurrent_queries\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"5\"))))), mdx(\"p\", null, \"  The maximum number of queries that can be sent concurrently from Relay\\nupstream before Relay starts buffering requests. Queries are all requests made\\nupstream for obtaining information and explicitly exclude event\\nsubmission.\"), mdx(\"p\", null, \"  The concurrency of queries is additionally constrained by\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"max_concurrent_requests\"), \".\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_event_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"1MiB\"))))), mdx(\"p\", null, \"  The maximum payload size for events.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_attachment_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"50MiB\"))))), mdx(\"p\", null, \"  The maximum size for each attachment.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_attachments_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"50MiB\"))))), mdx(\"p\", null, \"  The maximum combined size for all attachments in an envelope or request.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_envelope_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"50MiB\"))))), mdx(\"p\", null, \"  The maximum payload size for an entire envelopes. Individual limits still\\napply.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_session_count\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"100\"))))), mdx(\"p\", null, \"  The maximum number of session items per envelope.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_api_payload_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"20MiB\"))))), mdx(\"p\", null, \"  The maximum payload size for general API requests.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_api_file_upload_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"40MiB\"))))), mdx(\"p\", null, \"  The maximum payload size for file uploads and chunks.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_api_chunk_upload_size\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"100MiB\"))))), mdx(\"p\", null, \"  The maximum payload size for chunks.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_thread_count\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: number of cpus\")))), mdx(\"p\", null, \"  The maximum number of threads to spawn for each CPU and web worker.\"), mdx(\"p\", null, \"  The total number of threads spawned will roughly be \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"2 * limits.max_thread_count + N\"), \", where \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"N\"), \" is a fixed set of management threads.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.query_timeout\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"30\"), \" (seconds)\")))), mdx(\"p\", null, \"  The maximum number of seconds a query is allowed to take across retries.\\nIndividual requests have lower timeouts.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_connection_rate\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"256\"))))), mdx(\"p\", null, \"  The maximum number of connections to Relay that can be created at once.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_pending_connections\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"2048\"))))), mdx(\"p\", null, \"  The maximum number of pending connects to Relay. This corresponds to the\\nbacklog param of \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"listen(2)\"), \" in POSIX.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.max_connections\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer: default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"25_000\"))))), mdx(\"p\", null, \"  The maximum number of open incoming connections to Relay.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"limits.shutdown_timeout\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Integer, default:L \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"10\"), \" (seconds)\")))), mdx(\"p\", null, \"  The maximum number of seconds to wait for pending events after receiving a\\nshutdown signal.\"), mdx(\"h2\", {\n    \"id\": \"logging\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#logging\",\n    \"aria-label\": \"logging permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Logging\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"logging.level\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"info\"))))), mdx(\"p\", null, \"  The log level for the relay. One of:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"off\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"error\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"warn\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"info\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"debug\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"trace\")), mdx(Alert, {\n    level: \"warning\",\n    title: \"Warning\",\n    mdxType: \"Alert\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"On \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"debug\"), \" and \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"trace\"), \" levels, Relay emits extremely verbose messages which\\ncan have severe impact on application performance.\")))), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"logging.log_failed_payloads\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"boolean, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"false\"))))), mdx(\"p\", null, \"  Logs full event payloads of failed events to the log stream.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"logging.format\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"auto\"))))), mdx(\"p\", null, \"  Controls the log format. One of:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"auto\"), \": Auto detect (pretty for TTY, simplified for other)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"pretty\"), \": Human readable format with colors\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"simplified\"), \": Simplified human readable log output\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"json\"), \": JSON records, suitable for logging software\")), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"logging.enable_backtraces\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"boolean, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"true\"))))), mdx(\"p\", null, \"  Writes back traces for all internal errors to the log stream and includes them\\nin Sentry errors, if enabled.\"), mdx(\"h2\", {\n    \"id\": \"statsd-metrics\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#statsd-metrics\",\n    \"aria-label\": \"statsd metrics permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"StatsD Metrics\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"metrics.statsd\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, optional\")))), mdx(\"p\", null, \"  If set to a host/port string then metrics will be reported to this StatsD\\ninstance.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"metrics.prefix\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"sentry.relay\"))))), mdx(\"p\", null, \"  The prefix that should be added to all metrics.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"metrics.default_tags\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"Map of strings to strings, default empty\")))), mdx(\"p\", null, \"  A set of default tags that should be attached to all outgoing StatsD metrics.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"metrics.hostname_tag\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, optional\")))), mdx(\"p\", null, \"  If set, adds a tag of the given name and sets it to the hostname of the machine that\\nis running Relay. This configuration is useful to distinguish multiple Relays.\"), mdx(\"h2\", {\n    \"id\": \"internal-error-reporting\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#internal-error-reporting\",\n    \"aria-label\": \"internal error reporting permalink\",\n    \"className\": \"anchor before\"\n  }), mdx(\"svg\", _extends({\n    parentName: \"a\"\n  }, {\n    \"viewBox\": \"0 0 24 24\",\n    \"xmlns\": \"http://www.w3.org/2000/svg\"\n  }), mdx(\"path\", _extends({\n    parentName: \"svg\"\n  }, {\n    \"d\": \"M10.879 6.05L15 1.93A5.001 5.001 0 0 1 22.071 9l-4.121 4.121a1 1 0 0 1-1.414-1.414l4.12-4.121a3 3 0 1 0-4.242-4.243l-4.121 4.121a1 1 0 1 1-1.414-1.414zm2.242 11.9L9 22.07A5 5 0 1 1 1.929 15l4.121-4.121a1 1 0 0 1 1.414 1.414l-4.12 4.121a3 3 0 1 0 4.242 4.243l4.121-4.121a1 1 0 1 1 1.414 1.414zm-8.364-.122l13.071-13.07a1 1 0 0 1 1.415 1.414L6.172 19.242a1 1 0 1 1-1.415-1.414z\",\n    \"fill\": \"currentColor\"\n  })))), \"Internal Error Reporting\"), mdx(\"p\", null, \"Configures error reporting for errors happening within Relay. Disabled by\\ndefault.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"sentry.enabled\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"boolean, default: \", mdx(\"inlineCode\", {\n    parentName: \"em\"\n  }, \"false\"))))), mdx(\"p\", null, \"  Whether to report internal errors to a separate DSN. \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"false\"), \" means no internal\\nerrors are sent, but still logged.\"), mdx(\"p\", null, mdx(\"dl\", {\n    parentName: \"p\"\n  }, mdx(\"dt\", {\n    parentName: \"dl\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"dt\"\n  }, \"sentry.dsn\")), mdx(\"dd\", {\n    parentName: \"dl\"\n  }, \"\", mdx(\"em\", {\n    parentName: \"dd\"\n  }, \"String, optional\")))), mdx(\"p\", null, \"  Sentry DSN to which to report internal Relay failures.\"), mdx(\"p\", null, \"  We recommend setting this to a value that will not send Relay errors to\\nitself. Ideally, this value should send errors to Sentry directly, not another\\nRelay.\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#relay","title":"Relay"},{"url":"#http","title":"HTTP"},{"url":"#caching","title":"Caching"},{"url":"#size-limits","title":"Size Limits"},{"url":"#logging","title":"Logging"},{"url":"#statsd-metrics","title":"StatsD Metrics"},{"url":"#internal-error-reporting","title":"Internal Error Reporting"}]},"internal":{"type":"Mdx"}}}},"pageContext":{"excerpt":"Configuration for Relay is recorded in the file  .relay/config.yml . To change this location, pass the  --config  option to any Relay command: All configuration keys are  snake_case . Relay The following document the general settings for Relay: relay.mode :  String, default:  managed , possible values:  managed ,  static ,  proxy \n  and  capture   Controls how Relay obtains the project configuration for events. For detailed\n  explanation of these modes, see  Relay Modes . relay.upstream :  String, default:  https://sentry.io   Fully qualified URL of the upstream Relay or Sentry instance.   Relay does not check for cycles. Do not set this option to an endpoint\n  that will cause events to be cycled back here. relay.host :  String, default:  0.0.0.0  in Docker, otherwise  127.0.0.1   The host to which Relay should bind (network interface). Example:  0.0.0.0 relay.port :  Integer, default:  3000   The port to bind for the unencrypted Relay HTTP server. Example:  3000 relay.tls_port :  Integer, optional   Optional port to bind for the encrypted Relay HTTPS server. Example:  3001   This is in addition to the  port  option: If you set up a HTTPS server at\n   tls_port , the HTTP server at  port  still exists. relay.tls_identity_path :  String, optional   The filesystem path to the identity (DER-encoded PKCS12) to use for the HTTPS\n  server. Relative paths are evaluated in the current working directory.\n  Example:  relay_dev.pfx relay.tls_identity_password :  String, optional   Password for the PKCS12 archive in  relay.tls_identity_path . HTTP These settings control the network-related configuration. http.timeout :  Integer, default:  5   Timeout for upstream requests in seconds.   This timeout covers the time from sending the request until receiving response\n  headers. Neither the connection process and handshakes, nor reading the\n  response body is covered in this timeout. http.connection_timeout :  Integer, default:  3   Timeout for establishing connections with the upstream in seconds.   This includes SSL handshakes. Relay reuses connections when the upstream\n  supports connection keep-alive. Connections are retained for a maximum 75\n  seconds, or 15 seconds of inactivity. http.max_retry_interval :  Integer, default:  60   Maximum interval between failed request retries in seconds. host.header :  String, default:  null   The custom HTTP Host header to be sent to the upstream. Caching These settings fine tune caching of project states. cache.project_expiry :  Integer, default:  300  (5 minutes)   The cache timeout for project configurations in seconds. Irrelevant if you use\n  the \"simple proxy mode\", where your project config is stored in local files. cache.project_grace_period :  Integer, default:  0  (seconds)   Number of seconds to continue using this project configuration after cache\n  expiry while a new state is being fetched. This is added on top of\n   cache.project_expiry  and  cache.miss_expiry . cache.relay_expiry :  Integer, default:  3600  (1 hour)   The cache timeout for downstream Relay info (public keys) in seconds. This is\n  only relevant if you plan to connect further Relays to this one. cache.event_expiry :  Integer, default:  600  (10 minutes)   The cache timeout for events (store) before dropping them. cache.miss_expiry :  Integer, default:  60  (1 minute)   The cache timeout for non-existing entries. cache.batch_interval :  Integer, default:  100  (100 milliseconds)   The buffer timeout for batched queries before sending them upstream  in\n  milliseconds . cache.batch_size :  Integer, default:  500   The maximum number of project configs to fetch from Sentry at once. cache.file_interval :  Integer, default:  10  (10 seconds)   Interval for watching local cache override files in seconds. cache.event_buffer_size :  Integer, default:  1000   The maximum number of events that are buffered in case of network issues or a\n  high rate of incoming events. cache.eviction_interval :  Integer, default:  60  (seconds)   Interval for evicting outdated project configs from memory. Size Limits These settings control HTTP-related limits. All values are either integers, or are\nhuman-readable strings of a number and a human-readable unit, such as: 500B 1kB  ( 1,000  bytes) 1KB  or  1KiB  ( 1,024  bytes) 1MB  ( 1,000,000  bytes) 1MiB  ( 1,048,576  bytes) limits.max_concurrent_requests :  Integer, default:  100   The maximum number of concurrent connections upstream. If supported by\n  the upstream, Relay supports connection keepalive. limits.max_concurrent_queries :  Integer, default:  5   The maximum number of queries that can be sent concurrently from Relay\n  upstream before Relay starts buffering requests. Queries are all requests made\n  upstream for obtaining information and explicitly exclude event\n  submission.   The concurrency of queries is additionally constrained by\n   max_concurrent_requests . limits.max_event_size :  String, default:  1MiB   The maximum payload size for events. limits.max_attachment…","title":"Configuration Options","description":"Configure Relay to suit the needs of your organization.","draft":null,"noindex":null,"notoc":null,"sidebar_order":3,"redirect_from":["/meta/relay/options/"],"keywords":null,"id":"2ac0734d-8a86-53d8-ad02-c06c0a85980b","legacy":false}},"staticQueryHashes":["1218203755","1222113826","1222113826","1766336459","2158593473","2764967025","3345802723","3818502851","3990806462","4015007367","4192517163","4264099332","518019976"]}