{"componentChunkName":"component---src-templates-doc-tsx","path":"/product/sentry-basics/guides/grouping-and-fingerprints/","result":{"data":{"file":{"id":"36f94142-03fc-5012-a707-43f997f58868","relativePath":"product/sentry-basics/guides/grouping-and-fingerprints/index.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\": \"Grouping Issues\",\n  \"sidebar_order\": 7,\n  \"redirect_from\": [\"/guides/grouping-and-fingerprints/\"],\n  \"description\": \"Learn more about how Sentry groups issues together as well as different approaches for updating how events group into issues.\"\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 Note = makeShortcode(\"Note\");\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, \"Have you ever had a set of similar-looking issues like this?\\n\", mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1070px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/4d1cea09c1f5617aba76d47fcde2c828/121b3/issues-dashboard.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"31.666666666666664%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAIAAABM9SnKAAAACXBIWXMAAAsSAAALEgHS3X78AAAA1UlEQVQY021QW7LDIAjN/tfZ5CZqfcQoKGp7TNu/y4yIwnnokq6sDhPPS6SVKgimcsXkXCBm74N3oXC9zoTJJq23LlVqqbXKwlwoE6reB/AoAAZXzpQTORuASTEzsXfnZIlo8OUjxhbJSRmvTTDaBn+CEKwYAleDCKRuUmTwtjbZcTxiYq6LUH5sel31viln/bSDdpUxxuuO3/6CYVz2mYbKxLAN5fXvuR9W7/qrfD/pAx6/QA1ZFLADvMlUJphoV/Y4rFFPgOePScPqH4l/o/ftTEC/AU3gXGFfATx8AAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Issues Dashboard\",\n    \"title\": \"Issues Dashboard\",\n    \"src\": \"/static/4d1cea09c1f5617aba76d47fcde2c828/121b3/issues-dashboard.png\",\n    \"srcSet\": [\"/static/4d1cea09c1f5617aba76d47fcde2c828/5a46d/issues-dashboard.png 300w\", \"/static/4d1cea09c1f5617aba76d47fcde2c828/0a47e/issues-dashboard.png 600w\", \"/static/4d1cea09c1f5617aba76d47fcde2c828/121b3/issues-dashboard.png 1070w\"],\n    \"sizes\": \"(max-width: 1070px) 100vw, 1070px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Let's first understand what makes events group into an issue. \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"testTypeIssue15\"), \" is an issue that had four events. These events grouped into the issue because they shared the same \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"fingerprint\")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"What is a fingerprint?\"), \"\\nA fingerprint is a way to uniquely identify an event. Sentry sets a fingerprint by default for you. Sentry uses its own built-in grouping algorithms to generate a fingerprint based on information available within the event such as a stack trace, exception, and message. Events with the same fingerprint are grouped together.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Do I need to do anything?\"), \" No. A stack trace is used by default if it's available. So if two events have the same stack trace, then they will group into one issue. If you have separate issues that you'd like to group together, then this guide will show you how.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"How do I see the fingerprint?\"), \" Open an issue, click the JSON link, and find the \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"fingerprint\"), \" property. If the default grouping was used, you'll see default written there. If a different grouping was used, you'll see the actual fingerprint value itself.\"), mdx(\"h2\", {\n    \"id\": \"why-are-similar-looking-issues-not-grouping-together\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#why-are-similar-looking-issues-not-grouping-together\",\n    \"aria-label\": \"why are similar looking issues not grouping together 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  })))), \"Why are similar looking Issues not grouping together?\"), mdx(\"p\", null, \"If a set of issues in the Issues Stream looks similar, there is something that still differs: the stack trace, and therefore the fingerprint. Let's compare two similar looking issues side-by-side:\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1200px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/1bc0f592646f480f53a7e1c17379a0be/3c492/issue-stacktraces-comparison.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"26%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAA1ElEQVQY003K7W6DMAyFYe7/8qZSoFTNVAj5ahY7ToCQqox0mzTr/eXnVIzJa68YM+MIWs9SRilCaQpSBnYzP8onr/Wi1HsgoxDRmLmqP2xbu6NLA32L3Rm6GtsTHHU1NCdbPmd30LXFS4NFa2xOeOupSmmhgEgYol/XOef02p/7773WNHtCTxAjpW3Jz/+6V5MCdldcwjBZ/QhAm4XF+YSUkRIX9rOoG7g1NjhKf7r5kCqhYeDmPmqhURo0X0E9SFsCSj5moVxRbg56a1TGFw2ZYv4Gg8YU66X6TnwAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Issues Dashboard\",\n    \"title\": \"Issues Dashboard\",\n    \"src\": \"/static/1bc0f592646f480f53a7e1c17379a0be/c1b63/issue-stacktraces-comparison.png\",\n    \"srcSet\": [\"/static/1bc0f592646f480f53a7e1c17379a0be/5a46d/issue-stacktraces-comparison.png 300w\", \"/static/1bc0f592646f480f53a7e1c17379a0be/0a47e/issue-stacktraces-comparison.png 600w\", \"/static/1bc0f592646f480f53a7e1c17379a0be/c1b63/issue-stacktraces-comparison.png 1200w\", \"/static/1bc0f592646f480f53a7e1c17379a0be/3c492/issue-stacktraces-comparison.png 1300w\"],\n    \"sizes\": \"(max-width: 1200px) 100vw, 1200px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Notice the only difference is one had function testTypeIssue15 and the other had testTypeIssue14. This means the stack traces are not identical.\"), mdx(\"p\", null, \"Sometimes two stack traces are the same function execution path but differ by one frame. This can be due to several things like middleware you've configured, node_modules, the framework itself, or library imports. To have greater control over which stack frames are included or excluded, see \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/platform-redirect/?next=/data-management/event-grouping/grouping-enhancements/\"\n  }), \"Custom Grouping Enhancements\"), \".\"), mdx(Note, {\n    mdxType: \"Note\"\n  }, mdx(\"markdown\", null, mdx(\"p\", null, \"Fortunately you can change the default grouping behavior to make certain issue types match on something other than stack trace. You can do this from both the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Server side\"), \" and the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"SDK side\")))), mdx(\"h1\", {\n    \"id\": \"solutions\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h1\"\n  }, {\n    \"href\": \"#solutions\",\n    \"aria-label\": \"solutions 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  })))), \"Solutions\"), mdx(\"p\", null, \"There are three different approaches for updating how events group into issues. The first approach is for merging together historical issues already created. We'll call this \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Merging Similar Issues\"), \". The second is for setting rules so next incoming issues will get grouped together. We'll call this \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Server-side Fingerprinting\"), \". The third is \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"SDK Side Fingerprinting\"), \". The difference between SDK side and Server side is the data elements on the exception and stack traces which you can use for matching issues.\"), mdx(\"p\", null, \"In \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Merging Similar Issues\"), \" we'll see how historical issues can be merged together. No settings or configuration are required to do this.\"), mdx(\"p\", null, \"In \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Server-side Fingerprinting\"), \" we'll see how to set rules for new incoming issues of our choice to get grouped together by. This will not affect historical issues.\"), mdx(\"p\", null, \"More on \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"SDK Side Fingerprinting\"), \" \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/platform-redirect/?next=/data-management/event-grouping/sdk-fingerprinting/\"\n  }), \"here\"), \".\"), mdx(\"h2\", {\n    \"id\": \"merging-similar-issues\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#merging-similar-issues\",\n    \"aria-label\": \"merging similar issues 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  })))), \"Merging Similar Issues\"), mdx(\"p\", null, \"This is for merging similar issues and will not auto merge the next occurrence of this issue coming in.\"), mdx(\"p\", null, \"Before merge\\n\", mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"856px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/fae6e7a637b0282c2da7fc74afa244cb/ad12c/before-merge.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"25%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAAxklEQVQY03VPy27EMAjM//9gq+2he9g0j3USB2MetnFLtuqxoxFCMMAwIOR9i8xq1mut2lS15EQJUETjDnBi0UrIlLlbt2aubLURybCnEMKRkTJwyPNnfFtgzCAuFS6Y6DyASVzgEVNWKYikXOIWh/t5u0/TOgcnUNx4RgE3cO23C36kNXP6WbfgjVZq1jL68APfP8avZdqeaxDWWqyW6vz+Q+/OC6+8/xal2Qo4RA6PedlDPPaTWfxPN9b/wWXH561La0/AH1/MIPI5iHBzAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Before Merge\",\n    \"title\": \"Before Merge\",\n    \"src\": \"/static/fae6e7a637b0282c2da7fc74afa244cb/ad12c/before-merge.png\",\n    \"srcSet\": [\"/static/fae6e7a637b0282c2da7fc74afa244cb/5a46d/before-merge.png 300w\", \"/static/fae6e7a637b0282c2da7fc74afa244cb/0a47e/before-merge.png 600w\", \"/static/fae6e7a637b0282c2da7fc74afa244cb/ad12c/before-merge.png 856w\"],\n    \"sizes\": \"(max-width: 856px) 100vw, 856px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"After merge, we see that testTypeIssue7 and testTypeIssue8 were merged together.\\n\", mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1020px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/ff393135f265d320f8ee2d6895deea87/b12f7/after-merge.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"18.999999999999996%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAIAAAABPYjBAAAACXBIWXMAAAsSAAALEgHS3X78AAAAoElEQVQI1yWOCQ7CMAwE+/9XIiFxlNImbXzER2ApkWV5Y8/a0/JamTQ83QJh3Yh4W4uIUuP3srbGqrbXxiQRmTmQu5qZT0wM4MSiq4v0dhBG0a7l2Eujg4UVJKSbQ6p0qg2f01Z1K61sFQBsMxKWGMqffXePUwaK32YPIcWyuRwE+HK9z4/lcZvBM4uKKisO+5xvDMT412CQ0RqZTxI2/wJCjOfG4CJr6QAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"After Merge\",\n    \"title\": \"After Merge\",\n    \"src\": \"/static/ff393135f265d320f8ee2d6895deea87/b12f7/after-merge.png\",\n    \"srcSet\": [\"/static/ff393135f265d320f8ee2d6895deea87/5a46d/after-merge.png 300w\", \"/static/ff393135f265d320f8ee2d6895deea87/0a47e/after-merge.png 600w\", \"/static/ff393135f265d320f8ee2d6895deea87/b12f7/after-merge.png 1020w\"],\n    \"sizes\": \"(max-width: 1020px) 100vw, 1020px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"You can also do this from inside a single issue. Click the Similar Issues tab\\n\", mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"846px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/bd898da9aa35cb985893146123fe276d/5b481/similar-issues.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"59.00000000000001%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsSAAALEgHS3X78AAABmUlEQVQoz31S227bMAzV///cXjZgQIesibskdizJuksk5e3IWfuyYsQBQZDi7VBKaztNV2u90VtOVaQzd2KBZtqBRjKbbXPBGGeNc1uIsaRU78Yru6zXt9s8r/P88D6mVGJMRNKYi+QqFYU2H3NGQkm51EqNhZpsuapcKxwp5SOcvQ/QrfAjX7/OX364b6WnXXZmFhH+AGNCUS2X4GzENN7GYFPccnQpOOcfs3t9+AnOknznLJw7F4Ao9Rq4RTWFl5P+vvgbVWnErTHGao1gYGGhfthENHpDgxe92bzevbFqSafZrL/8JTqU5N73gX3IX/sdiNaKMuKCy6Vk7Kzr213bi/7pTCil8vECnP/+R3icQGDkEjGVcFdrudy1Oa8npwOYQ7jV1vsnyWNyYhh7CZ2woiD5vFg9mRP4qrXKOAN9mszvyVJSH5VELXFatL/ok10dOuMex+b/6ywpDBpJ1FRfJv96C+cSB6/gtB2dwdDztpgF5I0c6f3golPd4e1dZU5lj/iRaIbwExD8GWvdZj2Anh+hgb4/jT/CS7cqOY/G3QAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Similar Issues\",\n    \"title\": \"Similar Issues\",\n    \"src\": \"/static/bd898da9aa35cb985893146123fe276d/5b481/similar-issues.png\",\n    \"srcSet\": [\"/static/bd898da9aa35cb985893146123fe276d/5a46d/similar-issues.png 300w\", \"/static/bd898da9aa35cb985893146123fe276d/0a47e/similar-issues.png 600w\", \"/static/bd898da9aa35cb985893146123fe276d/5b481/similar-issues.png 846w\"],\n    \"sizes\": \"(max-width: 846px) 100vw, 846px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Warning:\"), \" Future issues will get added to the merged set only if they match one of the stack traces in the merged set.\"), mdx(\"h2\", {\n    \"id\": \"server-side-fingerprinting\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h2\"\n  }, {\n    \"href\": \"#server-side-fingerprinting\",\n    \"aria-label\": \"server side fingerprinting 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  })))), \"Server-side Fingerprinting\"), mdx(\"p\", null, \"Here's an overview of what we'll do using \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Server-Side Fingerprinting\")), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Identify the match logic for grouping issues together. We'll use either the error's \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"type\"), \" or \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"message\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Set the match logic and its fingerprint for it, in your Project's Settings.\")), mdx(\"h3\", {\n    \"id\": \"1-identify-match-logic\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#1-identify-match-logic\",\n    \"aria-label\": \"1 identify match logic 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  })))), \"1. Identify Match Logic\"), mdx(\"p\", null, \"Let's say you want the following 2 issues to group together:\\n\", mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"649px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/0c724cd455804d2c7ff84d7d41ac7540/7762d/connection-timeouts-2.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"26.333333333333336%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAAyklEQVQY0yWPCW7FIAwFc/8rVlUbNRAWswdiO4vq5Eujp0HAM0xjECMffJzHyXQQiT/ycUKWRORa2j6Q8BD4SZYDU19XE5oySdsSQgkQAWIMWeQlfaRvHRGJSGLfUYqu65qk9fvX6mW1xhvt1GKcA2e9WW2KcjM45wXwoZQCALW2Vrecyn3f0/BewVCuLX4Lacsxp5hl76WmN4XedyZ+kG8JxOcpk3f8+jHzrJV6xv7Nyq7OaCOT5bVGW1l6CynlnEtrWy1VJIYkNf9ihBpy5Wn/HAAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"ConnectionTimeouts\",\n    \"title\": \"ConnectionTimeouts\",\n    \"src\": \"/static/0c724cd455804d2c7ff84d7d41ac7540/7762d/connection-timeouts-2.png\",\n    \"srcSet\": [\"/static/0c724cd455804d2c7ff84d7d41ac7540/5a46d/connection-timeouts-2.png 300w\", \"/static/0c724cd455804d2c7ff84d7d41ac7540/0a47e/connection-timeouts-2.png 600w\", \"/static/0c724cd455804d2c7ff84d7d41ac7540/7762d/connection-timeouts-2.png 649w\"],\n    \"sizes\": \"(max-width: 649px) 100vw, 649px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"You can do it based on the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"type\"), \" as in:\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"648px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/ecb98b651f436b374d574177a49f4741/3996e/connection-timeout-type.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"26.333333333333336%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAA2ElEQVQY0yWP6W6EMAyEef/H2x9tUwqElpKTHBzBTmBVZyt9sixZM+NpUsITEiDkAhkzYinlyljwtSPQUgByDNuZoORCJ6Lki2gW0bZ2YKJncuBLb82yWO+XQJNwr0kce0LA6k45J5DRfd3NAceDs3Z678Qnn/t5kkZbrbQUyjuSOaOMVoZMY4jW2DWu27YHH5/3s/FmeDMjU+OHHrnnJHAuel8J/7g6a3ItUsn1+XzV5HN/9C3j7Gvqup/um09SaDFLMSuKFb+KXtCKCgSyo8wYVvKiIqT/AzDgGFi2SbraAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"ConnectionTimeoutType\",\n    \"title\": \"ConnectionTimeoutType\",\n    \"src\": \"/static/ecb98b651f436b374d574177a49f4741/3996e/connection-timeout-type.png\",\n    \"srcSet\": [\"/static/ecb98b651f436b374d574177a49f4741/5a46d/connection-timeout-type.png 300w\", \"/static/ecb98b651f436b374d574177a49f4741/0a47e/connection-timeout-type.png 600w\", \"/static/ecb98b651f436b374d574177a49f4741/3996e/connection-timeout-type.png 648w\"],\n    \"sizes\": \"(max-width: 648px) 100vw, 648px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Or you can do it based on the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"message\"), \" as in any value after the word host:\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"649px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/b9a3001c69395bcd434b88573f730863/7762d/connection-timeout-message.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"26.333333333333336%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsSAAALEgHS3X78AAAA3ElEQVQY0y2P6W6EMAyEef+Ha38sZSm0QixkcyckHLlRvXSlT6ORZXvs6jhi9CmFXFJOocSQcwRNQPAXLxOt2dwR3pUL6KwsmUZBBoIGipEkTz5hgZTUkmsp/lHAvu/e+QDjPjjn3eFLKZV16nO8tfOtJ033/ALzwxpGOcFUK5iUnHHGuBDSGANq7brabdHmPM/KctQL1NOpY/OkEVIjUg+1KKPt8sJcavfdvX+JKQIh5lwq49THUDdj/Y3abm7asf4l9xk/KOZwLeRTDNFSw5bFbOtmzApGSw0r/gAOoRfNdL0DeAAAAABJRU5ErkJggg==')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"ConnectionTimeoutMessage\",\n    \"title\": \"ConnectionTimeoutMessage\",\n    \"src\": \"/static/b9a3001c69395bcd434b88573f730863/7762d/connection-timeout-message.png\",\n    \"srcSet\": [\"/static/b9a3001c69395bcd434b88573f730863/5a46d/connection-timeout-message.png 300w\", \"/static/b9a3001c69395bcd434b88573f730863/0a47e/connection-timeout-message.png 600w\", \"/static/b9a3001c69395bcd434b88573f730863/7762d/connection-timeout-message.png 649w\"],\n    \"sizes\": \"(max-width: 649px) 100vw, 649px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"h3\", {\n    \"id\": \"2-implement\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", _extends({\n    parentName: \"h3\"\n  }, {\n    \"href\": \"#2-implement\",\n    \"aria-label\": \"2 implement 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  })))), \"2. Implement\"), mdx(\"p\", null, \"Here's how to set the match based on the error \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"type\")), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"775px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/eb195d2284b89c870655cef9291bb4c4/0098c/connection-timeout-type-example.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"31.666666666666664%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAIAAABM9SnKAAAACXBIWXMAAAsSAAALEgHS3X78AAAA40lEQVQY02WQ6ZKDIBCEef83TGLcuEFBEC/uQ92O+ZUs9dXU0EUNPU30atQwKjVJofpeWuP2/Si55Fy+ainbu+K6bTuekWVeWdf3XA7D2LZskCMarW1OJcUUT1LMMaQQYvAR1VmPKcdxEOc850JKJeUoxKDGmXOJZpoWbey6GgBVW5dySTmflJgyIPOyXq/3e/24XKqq+qnrpnk8b7e6+aWUdpSyJ2VYyvrgPoguBGK0hW3RSzjnTMA5/sTyELuOt5RBXBb98vwP4p032rwwVp9NTgmxIcjgAxRrHcT98yAwxPYHAWpVF3CigLIAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"ConnectionTimeoutTypeExample\",\n    \"title\": \"ConnectionTimeoutTypeExample\",\n    \"src\": \"/static/eb195d2284b89c870655cef9291bb4c4/0098c/connection-timeout-type-example.png\",\n    \"srcSet\": [\"/static/eb195d2284b89c870655cef9291bb4c4/5a46d/connection-timeout-type-example.png 300w\", \"/static/eb195d2284b89c870655cef9291bb4c4/0a47e/connection-timeout-type-example.png 600w\", \"/static/eb195d2284b89c870655cef9291bb4c4/0098c/connection-timeout-type-example.png 775w\"],\n    \"sizes\": \"(max-width: 775px) 100vw, 775px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"Now, all events coming in with ConnectionTimeout will get a fingerprint of connection-timeout-type and will get grouped into a single issue. This only applies to future events coming in. Each event for this issue could have a different stack trace, but stack trace is no longer used as the default grouping rule.\"), mdx(\"p\", null, \"Here's how to set the match based on the error \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"message\"), \" where you want to include all hosts.\"), mdx(\"p\", null, mdx(\"span\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"776px\"\n    }\n  }), \"\\n      \", mdx(\"a\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/ca62327497724495f5e5b4e501ef4c12/167b5/connection-timeout-message-example.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": \"noopener\"\n  }), \"\\n    \", mdx(\"span\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"32%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAIAAABM9SnKAAAACXBIWXMAAAsSAAALEgHS3X78AAAA9UlEQVQY0y2QiY6DMAxE+f8vrLb0ghIgB+QkdhJgnbbSkzUa29LYjbNeyYUQXAkuvQvHcZa851y+9UfZS3V+5r7vNNZobRjj8ySUXNkwSbEQzoWcMmKqQEofAYAQASLGDUop53k2IWzzLLhQQirO5bLoaeZVrMb5YK031im1eh9SLinnL5gqzarNtb23t+fl0t7ax+Pedd37+nd7vd7DMPb90HeMlgExIgKmCEhsETeAhm5mbJJyoeQjm4f3+NF8HGdaJiGF0trSWE1hLFVKUU8AbLYQyaIzgg9GU8855+soxXU+pURPqr6x3nmjTRU+nMdBb/sH34BUFVW5adwAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  })), \"\\n  \", mdx(\"img\", _extends({\n    parentName: \"a\"\n  }, {\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"ConnectionTimeoutMessageExample\",\n    \"title\": \"ConnectionTimeoutMessageExample\",\n    \"src\": \"/static/ca62327497724495f5e5b4e501ef4c12/167b5/connection-timeout-message-example.png\",\n    \"srcSet\": [\"/static/ca62327497724495f5e5b4e501ef4c12/5a46d/connection-timeout-message-example.png 300w\", \"/static/ca62327497724495f5e5b4e501ef4c12/0a47e/connection-timeout-message-example.png 600w\", \"/static/ca62327497724495f5e5b4e501ef4c12/167b5/connection-timeout-message-example.png 776w\"],\n    \"sizes\": \"(max-width: 776px) 100vw, 776px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  })), \"\\n  \"), \"\\n    \")), mdx(\"p\", null, \"You could also do this based on the file path of the erroring funciton, or on the function name itself. See \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/platform-redirect/?next=/data-management/event-grouping/server-side-fingerprinting/#examples\"\n  }), \"Additional Examples\")));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"items":[{"url":"#why-are-similar-looking-issues-not-grouping-together","title":"Why are similar looking Issues not grouping together?"}]},{"url":"#solutions","title":"Solutions","items":[{"url":"#merging-similar-issues","title":"Merging Similar Issues"},{"url":"#server-side-fingerprinting","title":"Server-side Fingerprinting","items":[{"url":"#1-identify-match-logic","title":"1. Identify Match Logic"},{"url":"#2-implement","title":"2. Implement"}]}]}]},"internal":{"type":"Mdx"}}}},"pageContext":{"excerpt":"Have you ever had a set of similar-looking issues like this?\n Let's first understand what makes events group into an issue.  testTypeIssue15  is an issue that had four events. These events grouped into the issue because they shared the same  fingerprint What is a fingerprint? \nA fingerprint is a way to uniquely identify an event. Sentry sets a fingerprint by default for you. Sentry uses its own built-in grouping algorithms to generate a fingerprint based on information available within the event such as a stack trace, exception, and message. Events with the same fingerprint are grouped together. Do I need to do anything?  No. A stack trace is used by default if it's available. So if two events have the same stack trace, then they will group into one issue. If you have separate issues that you'd like to group together, then this guide will show you how. How do I see the fingerprint?  Open an issue, click the JSON link, and find the  fingerprint  property. If the default grouping was used, you'll see default written there. If a different grouping was used, you'll see the actual fingerprint value itself. Why are similar looking Issues not grouping together? If a set of issues in the Issues Stream looks similar, there is something that still differs: the stack trace, and therefore the fingerprint. Let's compare two similar looking issues side-by-side: Notice the only difference is one had function testTypeIssue15 and the other had testTypeIssue14. This means the stack traces are not identical. Sometimes two stack traces are the same function execution path but differ by one frame. This can be due to several things like middleware you've configured, node_modules, the framework itself, or library imports. To have greater control over which stack frames are included or excluded, see  Custom Grouping Enhancements . Fortunately you can change the default grouping behavior to make certain issue types match on something other than stack trace. You can do this from both the  Server side  and the  SDK side Solutions There are three different approaches for updating how events group into issues. The first approach is for merging together historical issues already created. We'll call this  Merging Similar Issues . The second is for setting rules so next incoming issues will get grouped together. We'll call this  Server-side Fingerprinting . The third is  SDK Side Fingerprinting . The difference between SDK side and Server side is the data elements on the exception and stack traces which you can use for matching issues. In  Merging Similar Issues  we'll see how historical issues can be merged together. No settings or configuration are required to do this. In  Server-side Fingerprinting  we'll see how to set rules for new incoming issues of our choice to get grouped together by. This will not affect historical issues. More on  SDK Side Fingerprinting   here . Merging Similar Issues This is for merging similar issues and will not auto merge the next occurrence of this issue coming in. Before merge\n After merge, we see that testTypeIssue7 and testTypeIssue8 were merged together.\n You can also do this from inside a single issue. Click the Similar Issues tab\n Warning:  Future issues will get added to the merged set only if they match one of the stack traces in the merged set. Server-side Fingerprinting Here's an overview of what we'll do using  Server-Side Fingerprinting Identify the match logic for grouping issues together. We'll use either the error's  type  or  message Set the match logic and its fingerprint for it, in your Project's Settings. 1. Identify Match Logic Let's say you want the following 2 issues to group together:\n You can do it based on the  type  as in: Or you can do it based on the  message  as in any value after the word host: 2. Implement Here's how to set the match based on the error  type Now, all events coming in with ConnectionTimeout will get a fingerprint of connection-timeout-type and will get grouped into a single issue. This only applies to future events coming in. Each event for this issue could have a different stack trace, but stack trace is no longer used as the default grouping rule. Here's how to set the match based on the error  message  where you want to include all hosts. You could also do this based on the file path of the erroring funciton, or on the function name itself. See  Additional Examples","title":"Grouping Issues","description":"Learn more about how Sentry groups issues together as well as different approaches for updating how events group into issues.","draft":null,"noindex":null,"notoc":null,"sidebar_order":7,"redirect_from":["/guides/grouping-and-fingerprints/"],"keywords":null,"id":"36f94142-03fc-5012-a707-43f997f58868","legacy":false}},"staticQueryHashes":["1218203755","1222113826","1222113826","1766336459","2158593473","2764967025","3345802723","3818502851","3990806462","4015007367","4192517163","4264099332","518019976"]}