mirror of
https://github.com/SigNoz/signoz.git
synced 2026-04-26 13:50:23 +01:00
152 lines
4.9 KiB
HTML
152 lines
4.9 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<base href="[[.BaseHref]]" />
|
|
<meta
|
|
http-equiv="Cache-Control"
|
|
content="no-cache, no-store, must-revalidate, max-age: 0"
|
|
/>
|
|
<meta http-equiv="Pragma" content="no-cache" />
|
|
<meta http-equiv="Expires" content="0" />
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link rel="preconnect" href="https://cdn.vercel.com" crossorigin />
|
|
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
|
|
<title data-react-helmet="true">
|
|
Open source Observability platform | SigNoz
|
|
</title>
|
|
<meta
|
|
data-react-helmet="true"
|
|
property="og:title"
|
|
content="Open source Observability platform | SigNoz"
|
|
/>
|
|
<meta
|
|
data-react-helmet="true"
|
|
name="description"
|
|
content="SigNoz is an open source observability platform to help you find issues in your deployed applications & solve them quickly. It provides a single pane of glass for metrics, traces and logs with deep filtering and aggregation to pin down specific issues very quickly."
|
|
/>
|
|
<meta
|
|
data-react-helmet="true"
|
|
property="og:description"
|
|
content="SigNoz is an open source observability platform to help you find issues in your deployed applications & solve them quickly. It provides a single pane of glass for metrics, traces and logs with deep filtering and aggregation to pin down specific issues very quickly."
|
|
/>
|
|
<meta
|
|
data-react-helmet="true"
|
|
property="og:image"
|
|
content="[[.BaseHref]]images/signoz-hero-image.webp"
|
|
/>
|
|
<meta
|
|
data-react-helmet="true"
|
|
name="twitter:image"
|
|
content="[[.BaseHref]]images/signoz-hero-image.webp"
|
|
/>
|
|
<meta
|
|
data-react-helmet="true"
|
|
name="twitter:image:alt"
|
|
content="Image for Open source Observability platform | SigNoz"
|
|
/>
|
|
<meta
|
|
data-react-helmet="true"
|
|
name="twitter:card"
|
|
content="summary_large_image"
|
|
/>
|
|
<meta data-react-helmet="true" name="docusaurus_locale" content="en" />
|
|
<meta data-react-helmet="true" name="docusaurus_tag" content="default" />
|
|
<meta name="robots" content="noindex" />
|
|
<link data-react-helmet="true" rel="shortcut icon" href="favicon.ico" />
|
|
</head>
|
|
<body data-theme="default">
|
|
<script>
|
|
// Apply theme class synchronously before React renders to prevent flash.
|
|
// Mirrors the logic in ThemeProvider (hooks/useDarkMode/index.tsx).
|
|
(function () {
|
|
try {
|
|
// When served under a URL prefix (e.g. /signoz/), storage keys are scoped
|
|
// to that prefix by the React app (see utils/storage.ts getScopedKey).
|
|
// Read the <base> tag — already populated by the Go template — to derive
|
|
// the same prefix here, before any JS module has loaded.
|
|
var basePath =
|
|
(document.querySelector('base') || {}).getAttribute('href') || '/';
|
|
var prefix = basePath === '/' ? '' : basePath;
|
|
var theme = localStorage.getItem(prefix + 'THEME');
|
|
var autoSwitch =
|
|
localStorage.getItem(prefix + 'THEME_AUTO_SWITCH') === 'true';
|
|
if (autoSwitch) {
|
|
theme = window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
? 'dark'
|
|
: 'light';
|
|
}
|
|
if (theme === 'light') {
|
|
document.body.classList.add('lightMode');
|
|
} else {
|
|
// Default to dark when no preference is stored
|
|
document.body.classList.add('dark', 'darkMode');
|
|
}
|
|
} catch (e) {
|
|
document.body.classList.add('dark', 'darkMode');
|
|
}
|
|
})();
|
|
</script>
|
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
<div id="root"></div>
|
|
|
|
<script>
|
|
var PYLON_APP_ID = '<%- PYLON_APP_ID %>';
|
|
if (PYLON_APP_ID) {
|
|
(function () {
|
|
var e = window;
|
|
var t = document;
|
|
var n = function () {
|
|
n.e(arguments);
|
|
};
|
|
n.q = [];
|
|
n.e = function (e) {
|
|
n.q.push(e);
|
|
};
|
|
e.Pylon = n;
|
|
var r = function () {
|
|
var e = t.createElement('script');
|
|
e.setAttribute('type', 'text/javascript');
|
|
e.setAttribute('async', 'true');
|
|
e.setAttribute(
|
|
'src',
|
|
'https://widget.usepylon.com/widget/' + PYLON_APP_ID,
|
|
);
|
|
var n = t.getElementsByTagName('script')[0];
|
|
n.parentNode.insertBefore(e, n);
|
|
};
|
|
if (t.readyState === 'complete') {
|
|
r();
|
|
} else if (e.addEventListener) {
|
|
e.addEventListener('load', r, false);
|
|
}
|
|
})();
|
|
}
|
|
</script>
|
|
<script type="text/javascript">
|
|
window.AppcuesSettings = { enableURLDetection: true };
|
|
</script>
|
|
<script>
|
|
var APPCUES_APP_ID = '<%- APPCUES_APP_ID %>';
|
|
if (APPCUES_APP_ID) {
|
|
(function (d, t) {
|
|
var a = d.createElement(t);
|
|
a.async = 1;
|
|
a.src = '//fast.appcues.com/' + APPCUES_APP_ID + '.js';
|
|
var s = d.getElementsByTagName(t)[0];
|
|
s.parentNode.insertBefore(a, s);
|
|
})(document, 'script');
|
|
}
|
|
</script>
|
|
<link rel="stylesheet" href="css/uPlot.min.css" />
|
|
<script type="module" src="./src/index.tsx"></script>
|
|
</body>
|
|
</html>
|