diff --git a/app/alerts-management/Alerts.tsx b/app/alerts-management/Alerts.tsx index e54995dd2..99a961aff 100644 --- a/app/alerts-management/Alerts.tsx +++ b/app/alerts-management/Alerts.tsx @@ -8,20 +8,17 @@ import Card from '@/components/Card/card' import FeatureCard from '@/components/FeatureCard/FeatureCard' import ProductNav from '@/components/ProductNav/ProductNav' - function Alerts() { return ( -
- -
+
+ +
- {/* */} - {/* */}
@@ -31,94 +28,127 @@ function Alerts() { export default Alerts -const PlatformCard = ({ title, description }) => { +interface PlatformCardProps { + title: string + description: string +} + +const PlatformCard = ({ title, description }: PlatformCardProps) => { return ( -
-

{title}

-

{description}

+
+

{title}

+

{description}

- ); -}; + ) +} const FeatureList = () => { const features = [ - { title: 'Host Monitoring', description: 'Monitor any hosts such as VM, physical machines, containers, etc.' }, - { title: 'Build dashboards for application metrics', description: 'You can create customized dashboards for your application metrics' }, - { title: 'Kubernetes Infrastructure Monitoring', description: 'Query logs for specific conditions and add them to dashboards for continuous monitoring.' }, - { title: 'Share log lines', description: 'Improved collaboration with your teammates while debugging by sharing specific log lines.' }, - ]; + { + title: 'Host Monitoring', + description: 'Monitor any hosts such as VM, physical machines, containers, etc.', + }, + { + title: 'Build dashboards for application metrics', + description: 'You can create customized dashboards for your application metrics', + }, + { + title: 'Kubernetes Infrastructure Monitoring', + description: + 'Query logs for specific conditions and add them to dashboards for continuous monitoring.', + }, + { + title: 'Share log lines', + description: + 'Improved collaboration with your teammates while debugging by sharing specific log lines.', + }, + ] return ( -
+
{features.map((feature, index) => ( - + ))}
- ); -}; + ) +} const UsageList = () => { const Usage = [ - { title: 'Pay only for data you send', description: 'We don’t have any SKU-based pricing. Get access to all features in the plan selected and only pay for the data you send. Pay only $0.1 per million samples for metrics.' }, - { title: 'No special pricing for custom metrics', description: 'Vendors like Datadog charge $0.05 per custom metric, which limits a team’s ability to send and analyze custom metrics for monitoring. SigNoz does not treat custom metrics any differently. The charges remain $0.1 per million samples no matter what type of metrics you send.' }, - { title: 'Add unlimited team members', description: 'Observability should be available to every developer at your company. After all, anyone can need debugging. That’s why we don’t charge for user seats, and you can add as many team members as you want.' }, - { title: 'No Host (container or node) based pricing', description: 'For modern cloud-based applications it doesn’t make sense to charge on the basis of number of hosts or containers. You don’t need to worry about auto-scaling during peak hours. Only pay for the amount of data sent no matter the number of hosts.' }, + { + title: 'Pay only for data you send', + description: + 'We don’t have any SKU-based pricing. Get access to all features in the plan selected and only pay for the data you send. Pay only $0.1 per million samples for metrics.', + }, + { + title: 'No special pricing for custom metrics', + description: + 'Vendors like Datadog charge $0.05 per custom metric, which limits a team’s ability to send and analyze custom metrics for monitoring. SigNoz does not treat custom metrics any differently. The charges remain $0.1 per million samples no matter what type of metrics you send.', + }, + { + title: 'Add unlimited team members', + description: + 'Observability should be available to every developer at your company. After all, anyone can need debugging. That’s why we don’t charge for user seats, and you can add as many team members as you want.', + }, + { + title: 'No Host (container or node) based pricing', + description: + 'For modern cloud-based applications it doesn’t make sense to charge on the basis of number of hosts or containers. You don’t need to worry about auto-scaling during peak hours. Only pay for the amount of data sent no matter the number of hosts.', + }, ] return ( -
+
{Usage.map((feature, index) => ( - + ))}
- ); - + ) } const DocsList = () => { const Docs = [ - { title: 'Node.js instrumentation', description: 'Instrument your Node.js application and monitor with SigNoz' }, - { title: 'Python instrumentation', description: 'Instrument your Python application and monitor with SigNoz' }, - { title: 'Java instrumentation', description: 'Instrument your Java application and monitor with SigNoz' }, - { title: 'Get started with SigNoz APM', description: 'Instrument your Java application and monitor with SigNoz' }, + { + title: 'Node.js instrumentation', + description: 'Instrument your Node.js application and monitor with SigNoz', + }, + { + title: 'Python instrumentation', + description: 'Instrument your Python application and monitor with SigNoz', + }, + { + title: 'Java instrumentation', + description: 'Instrument your Java application and monitor with SigNoz', + }, + { + title: 'Get started with SigNoz APM', + description: 'Instrument your Java application and monitor with SigNoz', + }, ] return ( -
+
{Docs.map((feature, index) => ( - + ))}
- ); + ) } const Header = () => { - return (
+
-
- -

- Set Alerts on all Types of Observability Data +

+ Set Alerts on all Types of Observability Data

- -

- Create actionable alerts on metrics, logs, traces and exceptions and get notified in your preferred channel. + +

+ Create actionable alerts on metrics, logs, traces and exceptions and get notified in your + preferred channel.
Creating alerts in SigNoz is easy - just 3 simple steps.

@@ -138,7 +168,7 @@ const Header = () => {
-
+
@@ -172,11 +202,15 @@ const COMPANIES = [ { image: '/img/users/wombo.svg', imageDesc: 'wombo logo' }, ] -const TrustedByTeams = ({ page }) => { +interface TrustedByTeamsProps { + page: string +} + +const TrustedByTeams = ({ page }: TrustedByTeamsProps) => { const customerStoriesId = `btn-customer-stories-${page}-hero` return (
@@ -184,7 +218,7 @@ const TrustedByTeams = ({ page }) => { Trusted by the best platform teams
-
+
{COMPANIES.map((company, idx) => (
{ id={customerStoriesId} className=" button-background relative z-[1] flex h-8 items-center justify-center gap-1.5 truncate rounded-full py-2 pl-4 pr-3 text-center text-sm font-medium not-italic leading-5 text-white no-underline outline-none hover:text-white" > - + Read customer stories @@ -216,14 +250,13 @@ const TrustedByTeams = ({ page }) => { ) } - const SigNozFeatures = () => { - const sections = [ { title: 'Step 1. Define the metrics', - desc: ['You can create alerts on any kind of telemetry signal - logs, metrics, traces and exceptions. You can create complex queries to get the required metrics that you want to monitor with alerts.', - 'Alerts are powered by the same query builder that is used for logs, metrics, and trace explorer. You can add multiple queries and write formulae to query exactly what you want.' + desc: [ + 'You can create alerts on any kind of telemetry signal - logs, metrics, traces and exceptions. You can create complex queries to get the required metrics that you want to monitor with alerts.', + 'Alerts are powered by the same query builder that is used for logs, metrics, and trace explorer. You can add multiple queries and write formulae to query exactly what you want.', ], logo: '/img/log-management/fast.svg', }, @@ -234,57 +267,53 @@ const SigNozFeatures = () => { }, { title: 'Step 3. Configure your alert', - desc: ['In this step, you set the alerts metadata, including severity, name, and description. Set severity level of the alert like ‘warning’, or ‘critical’, set alert name and description. You can also add labels to your alerts. Then finally, set a notification channel to be notified.', + desc: [ + 'In this step, you set the alerts metadata, including severity, name, and description. Set severity level of the alert like ‘warning’, or ‘critical’, set alert name and description. You can also add labels to your alerts. Then finally, set a notification channel to be notified.', ], logo: '/img/log-management/fast.svg', buttonText: 'Learn More', - buttonLink: 'https://signoz.io/docs/alerts/' - }, - { + buttonLink: 'https://signoz.io/docs/alerts/', }, + {}, ] - const scrollsections = [ { title: 'Metrics Based Alert', - desc: "A Metric-based alert in SigNoz allows you to define conditions based on metric data and trigger alerts when these conditions are met.", - image: "/img/features/alerts/metric-based-alert.webp", + desc: 'A Metric-based alert in SigNoz allows you to define conditions based on metric data and trigger alerts when these conditions are met.', + image: '/img/features/alerts/metric-based-alert.webp', buttonText: 'Learn More', - buttonLink: 'https://signoz.io/docs/alerts-management/metrics-based-alerts/' + buttonLink: 'https://signoz.io/docs/alerts-management/metrics-based-alerts/', }, { title: 'Log Based Alerts', - desc: "A Log-based alert allows you to define conditions based on log data, triggering alerts when these conditions are met.", - image: "/img/features/alerts/log-based-alert.webp", + desc: 'A Log-based alert allows you to define conditions based on log data, triggering alerts when these conditions are met.', + image: '/img/features/alerts/log-based-alert.webp', buttonText: 'Learn More', - buttonLink: 'https://signoz.io/docs/alerts-management/log-based-alerts/' + buttonLink: 'https://signoz.io/docs/alerts-management/log-based-alerts/', }, { title: 'Trace Based Alerts', - desc: "A Trace-based alert in SigNoz allows you to define conditions based on trace data, triggering alerts when these conditions are met.", - image: "/img/features/alerts/trace-based-alert.webp", + desc: 'A Trace-based alert in SigNoz allows you to define conditions based on trace data, triggering alerts when these conditions are met.', + image: '/img/features/alerts/trace-based-alert.webp', buttonText: 'Learn More', - buttonLink: 'https://signoz.io/docs/alerts-management/trace-based-alerts/' + buttonLink: 'https://signoz.io/docs/alerts-management/trace-based-alerts/', }, { title: 'Exceptions Based Alerts', - desc: "An Exceptions-based alert in SigNoz allows you to define conditions based on exception data, triggering alerts when these conditions are met.", - image: "/img/features/alerts/exception-based-alert.webp", + desc: 'An Exceptions-based alert in SigNoz allows you to define conditions based on exception data, triggering alerts when these conditions are met.', + image: '/img/features/alerts/exception-based-alert.webp', buttonText: 'Learn More', - buttonLink: 'https://signoz.io/docs/alerts-management/exceptions-based-alerts/' + buttonLink: 'https://signoz.io/docs/alerts-management/exceptions-based-alerts/', }, { title: 'Notification in your preferred channel', - desc: "Configure alerts to get notified in your preferred channel. We support popular channels like Slack, PagerDuty, Opsgenie, MS Teams, emails & and more. You can also use webhooks to configure alert notifications in whole array of different channels.", - image: "/img/features/alerts/notification-channel.webp", + desc: 'Configure alerts to get notified in your preferred channel. We support popular channels like Slack, PagerDuty, Opsgenie, MS Teams, emails & and more. You can also use webhooks to configure alert notifications in whole array of different channels.', + image: '/img/features/alerts/notification-channel.webp', buttonText: 'Learn More', - buttonLink: 'https://signoz.io/docs/setup-alerts-notification/' + buttonLink: 'https://signoz.io/docs/setup-alerts-notification/', }, - { - - } - + {}, ] return ( <> @@ -294,7 +323,7 @@ const SigNozFeatures = () => {
- Set Alerts in
3 Simple Steps + Set Alerts in
3 Simple Steps
@@ -305,7 +334,7 @@ const SigNozFeatures = () => {
{sections.map((section, index) => ( {
- Alerts Management
Overview + Alerts Management
Overview
@@ -332,11 +361,10 @@ const SigNozFeatures = () => {
-
{scrollsections.map((scrollsections, index) => ( { ) } - - const SigNozUsage = () => { return (

- Use SigNoz
Metrics & Dashboards for... + Use SigNoz +
Metrics & Dashboards for...

-
+
@@ -376,24 +403,28 @@ const UsageBasedPricing = () => {

- Simple
usage-based
pricing + Simple +
usage-based
pricing

-
-
+
+
Pricing you can trust
-

Tired of Datadog’s unpredictable bills or New Relic’s user-based pricing?
We’re here for you.

+

+ Tired of Datadog’s unpredictable bills or New Relic’s user-based pricing? +
+ We’re here for you. +

- +
-
@@ -410,7 +441,7 @@ const ExploreDocs = () => {

-
+
@@ -447,19 +478,29 @@ const SigNozStats = () => {
{STATS_LIST.map((stat, index) => ( - + ))}
-
-
+
Custom Thumbnail
@@ -516,4 +561,4 @@ const GetStarted = ({ page }) => {
) -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index 86e352654..fda1f4c52 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,11 +1,16 @@ { "compilerOptions": { + "sourceMap": true, "incremental": true, - "target": "ESNext", - "lib": ["dom", "dom.iterable", "esnext"], + "target": "ES5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, - "strict": false, + "strict": true, "forceConsistentCasingInFileNames": true, "noEmit": true, "composite": true, @@ -14,18 +19,37 @@ "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, + "allowSyntheticDefaultImports": true, "jsx": "preserve", "baseUrl": "./", "paths": { - "@/components/*": ["components/*"], - "@/utils/*": ["utils/*"], - "@/constants/*": ["constants/*"], - "@/data/*": ["data/*"], - "@/layouts/*": ["layouts/*"], - "@/css/*": ["css/*"], - "@/api/*": ["api/*"], - "@/hooks/*": ["hooks/*"], - "contentlayer/generated": ["./.contentlayer/generated"] + "@/components/*": [ + "components/*" + ], + "@/utils/*": [ + "utils/*" + ], + "@/constants/*": [ + "constants/*" + ], + "@/data/*": [ + "data/*" + ], + "@/layouts/*": [ + "layouts/*" + ], + "@/css/*": [ + "css/*" + ], + "@/api/*": [ + "api/*" + ], + "@/hooks/*": [ + "hooks/*" + ], + "contentlayer/generated": [ + "./.contentlayer/generated" + ] }, "plugins": [ { @@ -41,10 +65,12 @@ "**/*.ts", "**/*.tsx", "**/*.json", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules", ".contentlayer/generated", ".contentlayer/generated/**/*.json", - ".next/types/**/*.ts", - "docs/shared/get-started-signoz.mdx" - ], - "exclude": ["node_modules"] + ".next/types/**/*.ts" + ] }