Skip to content
Open
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
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Application Issues
title: Debugging Applications
description: Figuring out what is going wrong with your deployed applications.
---

Expand Down
81 changes: 81 additions & 0 deletions pages/debugging/debugging-tools.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
---
title: Tools for Debugging
description: Additional resources to help you monitor and debug applications.
---
## Health Checks

Every application has a general application-level health check, which aggregates the statuses of all core Kubernetes components and generates a digestible summary for human viewing. These are viewable in the application switcher in the admin console, or by running:

```
plural watch <app-name>
```

This will generate output like:

```
Application: console (0.5.35) READY
plural admin console

Components Ready: 15/15

Ready Components:
- service/console :: Ready
- service/console-headless :: Ready
- service/console-master :: Ready
- service/console-replica :: Ready
- service/plural-console :: Ready
- service/plural-console-repl :: Ready
...
```

If a component is not ready, it will also generate hints to kubectl commands which might help debug them further.

## Proxies

Plural also helps with discovering useful proxy commands for inspecting core resources. This is done via the `Proxy` crd. A decent example is the proxy to the admin consoles underlying Postgres database:

```yaml
apiVersion: platform.plural.sh/v1alpha1
kind: Proxy
metadata:
name: db
labels:
spec:
type: db
target: statefulset/console-postgresql
credentials:
secret: console-postgresql
key: postgresql-password
user: console
dbConfig:
name: console
engine: postgres
port: 5432
```

The interface is quite powerful, and supports things like fetching database credentials, initiating a SQL shell, spawning a web UI via `kubectl port-forward`, or printing the credentials to stdout to allow a user to easily log in.

## Logs

Application-aware log tails can be baked into any Plural application to prevent a user from having to dig through the Kubernetes API to find the specific Pod they should tail. They can be discovered and watched using:

```shell {% showHeader=false %}
plural logs list <app>
plural logs tail <app> <name>
```

Now the relevant logs will be streamed to stdout.

The specification for these is baked into the `LogTail` crd, for example:

```yaml
apiVersion: platform.plural.sh/v1alpha1
kind: LogTail
metadata:
name: aws-load-balancer
labels:
spec:
limit: 50
target: deployment/bootstrap-aws-load-balancer-controller
follow: true
```
4 changes: 0 additions & 4 deletions pages/debugging/index.md

This file was deleted.

134 changes: 0 additions & 134 deletions pages/reference/troubleshooting.md

This file was deleted.

26 changes: 6 additions & 20 deletions src/NavData.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -209,30 +209,16 @@ const rootNavData: NavMenu = deepFreeze([
title: 'Debugging',
sections: [
{
href: '/debugging',
title: 'Debugging',
sections: [
{
href: '/debugging/health-checks',
title: ' Health Checks',
},
{
href: '/debugging/proxies',
title: 'Proxies',
},
{
href: '/debugging/logs',
title: 'Logs',
},
],
title: 'Debugging Applications',
href: '/debugging/debugging-applications',
},
{
title: 'Troubleshooting',
href: '/reference/troubleshooting',
href: '/debugging/debugging-tools',
title: 'Tools for Debugging',
},
{
title: 'Application Issues',
href: '/debugging/application-issues',
title: 'Common Errors',
href: '/debugging/common-errors',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean to rename the old troubleshooting file to common-errors? I think you just deleted the file

},
],
},
Expand Down