Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion site/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ baseurl = "https://www.checklyhq.com"
languageCode = "en-us"
languageLang = "en"
title = "Build and Run Synthetics That Scale"
disableKinds = ["RSS", "taxonomy", "taxonomyTerm"]
disableKinds = ["RSS"]
enableGitInfo = true
enableRobotsTXT = true

Expand All @@ -11,6 +11,10 @@ pygmentsUseClasses = true

disqusShortname = "checkly"

[taxonomies]
tag = "tags"
category = "categories"

[permalinks]
blog = "/blog/:year/:month/:title/"

Expand Down
2 changes: 1 addition & 1 deletion site/content/docs/integrations/prometheus-v2.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Exporting Metrics & Data via Prometheus and Checkly
title: Exporting Metrics & Data via Prometheus v2 and Checkly
navTitle: Prometheus v2
weight: 65
aliases:
Expand Down
2 changes: 2 additions & 0 deletions site/content/guides/end-to-end-monitoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: >-
Learn end-to-end monitoring with playwright to test key website flows. Follow our guide that gets you up and running in 10 minutes.
author: Giovanni Rago
avatar: 'images/avatars/giovanni-rago.png'
tags:
- FAQ
---
## An overview of end-to-end monitoring

Expand Down
2 changes: 2 additions & 0 deletions site/content/guides/monitoring-an-openapi-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ description: >-
OpenAPI and Swagger help users design and document APIs in a way that is readable from both humans and machines. As a consequence, they can also be used to generate the code that will run the specified API - both on the provider and consumer side. Can we leverage this same principle to simplify API monitoring? After a brief first look at OpenAPI and Swagger, this article will show how we can quickly use them to monitor a new or existing API.
author: Giovanni Rago
avatar: 'images/avatars/giovanni-rago.png'
tags:
- API
---

## What is the OpenAPI Specification?
Expand Down
2 changes: 2 additions & 0 deletions site/content/guides/monitoring-as-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ description: >-
Monitoring as code is the practice of managing monitoring configurations and alerts through code. This approach offers several benefits for engineering teams at scale, including codified, version-controlled, and reusable monitoring configurations.
author: Daniel Giordano
avatar: 'images/avatars/daniel-giordano.png'
tags:
- FAQ
---

## An overview of monitoring as code
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ displayDescription: >-
The as code movement has been picking up steam over the last few years, offering a way for DevOps teams to transparently manage and scale cloud infrastructure, security and other resources. Why should the way we manage monitoring be any different? In this article, we address this point and illustrate it with a practical example of monitoring as code (MaC) via our Checkly CLI.
author: Hannes Lenke
avatar: 'images/avatars/hannes-lenke.png'
tags:
- Playwright
---

## Inspired by Infrastructure-as-Code and E2E-Testing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ description: >-
The trend of declaring infrastructure as code has been picking up steam over the last few years, offering a way for DevOps teams to transparently manage and scale cloud infrastructure. Why should the way we manage monitoring be any different? In this article, we address this point and illustrate it with a practical example of Monitoring-as-Code on Checkly.
author: Giovanni Rago
avatar: 'images/avatars/giovanni-rago.png'
tags:
- Terraform
---
The trend of declaring infrastructure as code has been picking up steam over the last few years, offering a way for DevOps teams to transparently manage, monitor and scale cloud infrastructure. Why should the way we manage monitoring be any different? In this article, we address this point and illustrate it with a practical example of Monitoring-as-Code on Checkly.

Expand Down
4 changes: 3 additions & 1 deletion site/content/guides/monitoring-the-stripe-api.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
---
title: How to monitor the Stripe customer API with Checkly | API Monitoring Examples
displayTitle: How to monitor the Stripe customer API with Checkly
displayTitle: How to monitor the Stripe customer API with Checklymoni
description: >-
Application Programming Interfaces (APIs) are used throughout software to define interactions between different software applications. In this article we focus on web APIs specifically, taking a look at how they fit in the Jamstack architecture and how we can set up API monitoring in order to make sure they don't break and respond fast.
author: Giovanni Rago
avatar: 'images/avatars/giovanni-rago.png'
tags:
- API
---

{{< figure src="/guides/images/guides-checkly-jamstack-header.png" alt="jamstack architecture diagram" title="Jamstack applications heavily rely on APIs" >}}
Expand Down
2 changes: 2 additions & 0 deletions site/content/guides/moving-from-puppeteer-to-playwright.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ description: >-
The switch from Puppeteer to Playwright is easy. But is it worth it? And how exactly does one migrate existing scripts from one tool to another? What are the required code-level changes, and what new features and approaches does the switch enable?
author: Giovanni Rago
avatar: 'images/avatars/giovanni-rago.png'
tags:
- Playwright
---

> **UPDATE**: _you can use our {{< newtabref href="https://github.com/checkly/puppeteer-to-playwright" title="puppeteer-to-playwright" >}} conversion script to quickly migrate your Puppeteer codebase to Playwright._
Expand Down
2 changes: 2 additions & 0 deletions site/content/guides/setup-scripts-for-apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: >-
Setup scripts are a fundamental tool to tailor API checks to your own target endpoints. Their power and flexibility can intimidate beginners, who might struggle to understand how the different parts fit together. This guide will present and break down different real-world examples to help you master this game-changing tool.
author: Giovanni Rago
avatar: 'images/avatars/giovanni-rago.png'
tags:
- API
---

## The importance of self-contained checks
Expand Down
2 changes: 2 additions & 0 deletions site/content/guides/the-programmable-monitoring-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ description: >-
The monitoring as code workflow enables developers to code, test and deploy your entire monitoring infrastructure. This guide explains how to leverage TypeScript/JavaScript to configure your monitoring setup dynamically.
author: Stefan Judis
avatar: 'images/avatars/stefan-judis.jpg'
tags:
- FAQ
---

With the release of [the Checkly CLI](https://www.checklyhq.com/docs/cli/), monitoring as code (Mac) enables you to **code, test, and deploy** your entire monitoring setup. Use the CLI to programmatically create monitoring resources, test these in CI/CD development workflows and then deploy them to the Checkly cloud to monitor your sites and APIs.
Expand Down
15 changes: 15 additions & 0 deletions site/layouts/_default/terms.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!-- layouts/_default/terms.html -->
{{ define "main" }}
<div class="main py-5">
<div class="container">
<h1 class="display-3">{{ .Title }}</h1>
<ul class="taxonomy-list">
{{ range .Data.Terms }}
<li>
<a href="{{ .Permalink }}">{{ .Title }} ({{ .Count }})</a>
</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}
89 changes: 55 additions & 34 deletions site/layouts/guides/list.html
Original file line number Diff line number Diff line change
@@ -1,37 +1,58 @@
{{ define "main" }}
<div class="main py-5">
<div class="container">
<div class="guides__list">
<h1 class="display-3">{{ .Title }}</h1>
<p class="lead-text">{{ .Params.description }}</p>
{{ range where .Site.RegularPages.ByLastmod.Reverse "Section" "guides" }}
<div class="guide-card">
<div>
<div class="guide-info">
<h2><a href="{{ .RelPermalink }}">
{{ if .Params.displayTitle}}
{{.Params.displayTitle}}
{{else}}
{{.Title}}
{{end}}
</a></h2>
<p>
{{ if .Params.displayDescription}}
{{.Params.displayDescription}}
{{else}}
{{.Description}}
{{end}}
</p>
</div>
<div class="write-info">
<img src="{{ .Params.avatar | relURL }}" alt="{{ .Params.author }}" width="24" height="24" />
<span>{{ .Params.author }} </span>
<a href="{{ .RelPermalink }}" class="cta-link">Read the guide</a>
</div>
</div>
</div>
{{ end }}
</div>
</div>
<div class="container-fluid docs w-100">
<h1 class="display-3">{{ .Title }}</h1>
<p class="lead-text">{{ .Params.description }}</p>

<!-- Guides List -->
<div class="guides__list">
{{ range where .Site.RegularPages.ByLastmod.Reverse "Section" "guides" }}
<div class="guide-card" data-tags="{{ delimit .Params.tags ", " }}">
<div>
<div class="guide-info">
<div class="guide-tag">
{{ with .Params.tags }}
{{ if (in (printf "%T" .) "[]string") }}
{{ range $index, $tag := . }}
{{ $tag }}
{{ end }}
{{ else }}
<!-- Optional: Handle the case where tags is not an array -->
<span>No tags available or invalid format</span>
{{ end }}
{{ else }}
<span>No tags available.</span>
{{ end }}
</div>

<h2>
<a href="{{ .RelPermalink }}">
{{ if .Params.displayTitle }}
{{ .Params.displayTitle }}
{{ else }}
{{ .Title }}
{{ end }}
</a>
</h2>

<p>
{{ if .Params.displayDescription }}
{{ .Params.displayDescription }}
{{ else }}
{{ .Description }}
{{ end }}
</p>
</div>

<div class="write-info">
<img src="{{ .Params.avatar | relURL }}" alt="{{ .Params.author }}" width="24" height="24" />
<span>{{ .Params.author }}</span>
<a href="{{ .RelPermalink }}" class="cta-link">Read the guide</a>
</div>
</div>
</div>
{{ end }}
</div>
</div>
</div>
{{end}}
{{ end }}
51 changes: 35 additions & 16 deletions site/layouts/guides/single.html
Original file line number Diff line number Diff line change
@@ -1,37 +1,56 @@
{{ define "main" }}
<div class="d-flex container-fluid guides">
<div class="guides-page">
<div class="col-sm-12 col-lg-11">
<div class="guides__label">
<a href="/guides/">Checkly Guides</a>
</div>
<h1 class="guides__title">
{{ if .Params.displayTitle}}
{{.Params.displayTitle}}
{{else}}
{{.Title}}
{{end}}
</h1>
<div class="d-flex container-fluid guides gap-6">
<div class="d-flex guides-page">
<div class="guides__container">
<div class="guides__header">
<div class="guides__back"><a href="/guides/">Back to guides</a></div>
<div class="guides__label">
{{ with .Params.tags }}
{{ if (in (printf "%T" .) "[]string") }}
{{ range $index, $tag := . }}
{{ $tag }}
{{ end }}
{{ else }}
<!-- Optional: Handle the case where tags is not an array -->
<span>No tags available or invalid format</span>
{{ end }}
{{ else }}
<span>No tags available.</span>
{{ end }}
</div>
<h1 class="guides__title">
{{ if .Params.displayTitle}}
{{.Params.displayTitle}}
{{else}}
{{.Title}}
{{end}}
</h1>
</div>
<div class="guides-toc-mobile mb-5 pt-3">
<div class="guides-toc-header mb-3 pt-3">On this page</div>
{{ .Page.TableOfContents }}
</div>
{{ if or (.Description) (.Params.displayDescription) }}

<p class="guides__description">
{{ if or (.Description) (.Params.displayDescription) }}
{{ if .Params.displayDescription}}
{{.Params.displayDescription}}
{{else}}
{{.Description}}
{{end}}
{{ end }}
</p>
{{ end }}

<div class="write-info">
<img src="{{ .Params.avatar | relURL }}" alt="{{ .Params.author }}" width="24" height="24" />
<span>{{ .Params.author }} </span>

</div>

<span class="markdown">{{.Content}}</span>
</div>
</div>


<aside class="guides-toc mb-3">
<div id="tocMenu">
<div class="guides-toc-header">On this page</div>
Expand Down
28 changes: 28 additions & 0 deletions site/layouts/guides/tags.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!-- layouts/_default/terms.html -->
{{ define "main" }}
<div class="main py-5">
<div class="container">
<h1 class="display-3">{{ .Title }}</h1>
<ul class="taxonomy-list">
{{ range .Params.tags }}
<li>
<div class="guide-tag">
{{ with .Params.tags }}
{{ if (in (printf "%T" .) "[]string") }}
{{ range $index, $tag := . }}
<a href="/guides/tags/{{ $tag | urlize }}">{{ $tag }}</a>{{ if lt (add $index 1) (len .) }} {{ end }}
{{ end }}
{{ else }}
<!-- Optional: Handle the case where tags is not an array -->
<span>No tags available or invalid format</span>
{{ end }}
{{ else }}
<span>No tags available.</span>
{{ end }}
</div>
</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}
28 changes: 28 additions & 0 deletions site/layouts/guides/terms.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!-- layouts/_default/terms.html -->
{{ define "main" }}
<div class="main py-5">
<div class="container">
<h1 class="display-3">{{ .Title }}</h1>
<ul class="taxonomy-list">
{{ range .Params.tags }}
<li>
<div class="guide-tag">
{{ with .Params.tags }}
{{ if (in (printf "%T" .) "[]string") }}
{{ range $index, $tag := . }}
<a href="/guides/tags/{{ $tag | urlize }}">{{ $tag }}</a>{{ if lt (add $index 1) (len .) }} {{ end }}
{{ end }}
{{ else }}
<!-- Optional: Handle the case where tags is not an array -->
<span>No tags available or invalid format</span>
{{ end }}
{{ else }}
<span>No tags available.</span>
{{ end }}
</div>
</li>
{{ end }}
</ul>
</div>
</div>
{{ end }}
Loading