Monitoring applications

Monitor applications across clusters, and the deployments, resources, and services for an application in the Applications dashboard. As a one-stop shop for Argo Rollouts and Argo CD, the Applications dashboard in Codefresh delivers on the challenge of keeping track of your applications and their deployments, whatever the frequency and scale, across all clusters in your enterprise. A wide range of filters, progressive delivery views, and enriched CI and CD information, provide full traceability and visibility to your deployments.

Select the view format for the Applications Dashboard, as either List or Card views. The default view displays all applications deployed within the last 30 days. Customize the scope through filters to display the information you need.

Applications Dashboard: List view

Applications Dashboard: List view

Monitor the current health and sync status of applications, and then select an application to drill down into its resources, deployments, and services:

For information on creating and managing applications and application resources, see Creating applications and Managing applications.

Select view mode for the Applications dashboard

View deployed applications in either List (the default) or Card views. Both views are sorted by the most recent deployments.

  1. In the Codefresh UI, go to the Applications dashboard.
  2. Select List or Cards.

Applications List view

Here is an example of the Applications dashboard in List view mode.

Applications Dashboard: List view

Applications Dashboard: List view

Applications Card view

Here is an example of the Applications dashboard in Card view mode. The Card view provides a scannable view of application data and the actions to manage applications.

Applications Dashboard: Card view

Applications Dashboard: Card view

Applications dashboard information

Here’s a description of the information and actions in the Applications dashboard.

Item Description
Application filters Filter by a range of attributes to customize the information in the dashboard to bring you what you need.
  • Application state
    A snapshot that displays a breakdown of the deployed applications by their health status.
    Click a status to filter by applications that match it.
    Codefresh tracks Argo CD's set of health statuses. See the official documentation on Health sets. .
  • Application attributes
    Attribute filters support multi-selection, and results are based on an OR relationship within the same filter with multiple options, and an AND relationship between filters.
    Clicking More Filters gives you options to filter by Health status, Cluster names, Namespace, and Type.
    • Application Type: Can be any of the following
      • Applications: Standalone applications. See the official documentation on Applications.
      • ApplicationSet: Applications created using the ApplicationSet Custom Resource (CR) template. An ApplicationSet can generate single or multiple applications. See the official documentation on Generating Applications with ApplicationSet.
      • Git Source: Applications created by Codefresh that includes other applications and CI resources. See Git Sources.
    • Labels:The K8s labels defined for the applications. The list displays labels of all the applications, even if you have applied filters.
      To see the available labels, select Add, and then select the required label and one or more values.
      To filter by the labels, select Add and then Apply.
      See the official documentation on Labels and selectors.
Star applications as favorites and view only the starred applications.
Select the to star the application as a favorite.

To filter by favorite applications, on the filters bar, select .
TIP: If you star applications as favorites in the Applications dashboard, you can filter by the same applications in the DORA metrics dashboard.
Application actions Options to monitor/manage applications through the application’s context menu.
  • Quick view
    A comprehensive read-only view of the deployment and definition information for the application.
  • See Application Quick View in this article.
  • Synchronize/Sync
    Manually synchronize the application.
  • See Manually sync applications.
  • Edit
    Modify application definitions.
  • See Edit application definitions.
  • Refresh and Hard Refresh: Available in Card view only. In List view, you must first select the application.
    • Refresh: Retrieve desired (Git) state, compare with the live (cluster) state, and refresh the application to sync with the desired state.
    • Hard Refresh: Refresh the application to sync with the Git state, while removing the cache.

Identify applications with warnings/errors

Errors are flagged in the Warnings/Errors button, displayed at the top right of the Applications dashboard. Clicking the button shows the list of applications with the warnings/errors and the possible reasons for these.

Example of warning and error notifications for applications

Example of warning and error notifications for applications

Every notification identifies:

  • The type of resource with the problem (Application, Deployment, Pod)
  • If it is health or sync related
  • If it is a warning or error.

All errors are Argo CD-generated errors. Codefresh generates custom warnings for the following:


Warning: Missing Rollouts reporter in cluster

Reason: Codefresh has detected that Argo Rollouts is not installed on the target cluster. Rollout instructions are therefore not executed and the application is not deployed.
Applications with rollout resources need Argo Rollouts on the target cluster, both to visualize rollouts in the Applications dashboard and control rollout steps with the Rollout Player.

Corrective Action: Click Install and install Argo Rollouts on the target cluster.


Warning: Long sync

Reason: Ongoing sync for application exceeds 30 minutes (Argo CD’s default duration for a sync operation).

Corrective Action:

  • Click View Details to take you directly to the Sync Result tab. Here you can see details on the sync job that was started, and info on the Hooks if any. Failed hooks are displayed at the top.
  • To see more details such as the message and sync duration, switch to Sync Info.
  • To stop the sync operation, click Terminate.
  • Drill down into the application to investigate the issue and make changes.

View deployment and configuration info for selected application

View deployment, definition, and event information for the selected application in a centralized location through the Quick View.
A read-only view, the Quick View displays information on the application state and location, labels and annotations, parameters, sync options, manifest, status and sync events. Access the Quick View from the Applications dashboard, either from the application’s context menu, or after drilldown, from the Current State tab.

  1. In the Codefresh UI, go to the Applications dashboard.
  2. Do one of the following:
    • From the List or Card views, select the context menu and then select Quick View.

Selecting Quick View from the context menu

Selecting Quick View from the context menu
  • Select the application, and from the application header’s context menu on the right, select Details.

View app details from the application header context menu

View app details from the application header context menu
  • Select the application, and in the Current State tab, click the parent application resource.

Accessing Quick View from the Current State tab

Accessing Quick View from the Current State tab
Quick View: Summary

Displays health, sync status, and source and destination definitions.

Application Quick View: Summary

Application Quick View: Summary
Quick View: Metadata

Displays labels and annotations for the application.

Application Quick View: Metadata

Application Quick View: Metadata
Quick View: Parameters

Displays parameters configured for the application, based on the tool used to create the application’s manifests.
The parameters displayed differ according to the tool: directory (as in the screenshot below), Helm charts, or Kustomize manifests, or the specific plugin.

Application Quick View: Parameters

Application Quick View: Parameters
Quick View: Sync Options

Displays sync options enabled for the application.

Application Quick View: Parameters

Application Quick View: Parameters
Quick View: Manifest

Displays the YAML version of the application manifest.

Application Quick View: Manifest

Application Quick View: Manifest
Quick View: Events

Displays status and sync events for the application.

Application Quick View: Events

Application Quick View: Events

Monitor health and sync statuses for selected application

Monitor the health status of the selected application, the current sync status, and the result of the previous sync operation.
Once you select an application, the quickest option to monitor statuses is through the application header which is always displayed, no matter what tab you navigate to.

Application header with health and sync status

Application header with health and sync status

Sync statuses also have More links that display details such as the date, tags, and message.

Sync details panel on clicking More

Sync details panel on clicking More

Tip:
You can also view the current health and sync status for the application as a resource in the Current State tab.

Monitor resources for selected application

Monitor the resources deployed in the current version of the selected application in the Current State tab.
Selecting an application from the Applications dashboard takes you to the Current State tab, which as its title indicates, displays the
live state of the application’s resources (Kubernetes objects) on the cluster, including health, sync state, manifests, and logs.

Monitor application resources in Current State tab

Monitor application resources in Current State tab

The icon for a resource node identifies the type of Kubernetes resource it represents. For general information on K8s resources, see Working with Kubernetes objects.

You can view application resources in List or Tree views, set filters, and monitor:

To quickly see which resources have been added, modified, or removed for the current or for a specific deployment, switch to the Timeline tab and expand the deployment record to show Updated Resources. See Monitor resource updates for deployments.

View modes for application resources

The Current State tab supports Tree and List view formats.

  • Tree view (default): A hierarchical, interactive visualization of the application and its resources. Useful for complex deployments with multiple clusters and large numbers of resources. See also Working with resources in Tree view.
    Here is an example of the Current State in Tree view.

Tree view of application resources in Current State

Tree view of application resources in Current State
  • List View: A list-based representation of application’s resources, sorted by the Last Update. Here is an example of the Current State in List view.

List view of application resources in Current State

List view of application resources in Current State
Working with resources in Tree view

The Tree view is designed to impart key information at a glance. Review the sections that follow for pointers to quickly get to what you need in the Tree view.

Context menu
Every resource has a context menu that opens on clicking the three dots on the right of the node. The options available differ according to the type of resource.

Current State Tree view: Resource context menu

Current State Tree view: Resource context menu

Resource info
Mouse over a node to see a tooltip for that resource. For detailed information, select the resource.

Current State Tree view: Resource tooltip

Current State Tree view: Resource tooltip

Search resources
Quickly find a resource by typing the resource name in the search field. You can identify search results through the border which is different from the borders depicting health status. Press Enter to navigate to the next result.

Current State Tree view: Search resources

Current State: Search resources

Resource inventory
The Resource inventory in the Tree view (bottom-left), summarizes the aggregated count for each resource type in the application.
For visibility and quick access, Syncing and Out-of-Sync resources are bucketed separately.


Click-filters:

In the resource inventory, selecting a Syncing or Out-of-Sync resource type, filters the Current State by that resource type and sync status. These filters are automatically applied to the default filter list for both Tree and List views. Here’s an example of an application with out-of-sync resources, and the result on selecting an out-of-sync resource type.

Current State Tree view: Resource inventory

Current State Tree view: Resource inventory

Current State Tree view: Resource inventory filtered by out-of-sync service

Current State Tree view: Resource inventory filtered by out-of-sync service

Filters for application resources

Filters are common to both Tree and List views, and when applied are retained when switching between views.

IgnoreExtraneous is a filter in Argo CD that allows you to hide specific resources from the Current State views. These resources are usually generated by a tool and their sync statuses have no impact on the sync status of the application. For example, ConfigMap and pods. The application remains in-sync even when such resources are syncing or out-of-sync.

The IgnoreExtraneous filter applies only to the sync status. The health status of the resource directly affects the application’s health status. If the resource is degraded, then the application is also degraded.

For the IgnoreExtraneous filter to be effective:

  • Add IgnoreExtraneous as an annotation to the resource, as in the example below of the ConfigMap resource.

Resource with IgnoreExtraneous annotation

Resource with IgnoreExtraneous annotation
  • In the Current State tab, click the IgnoreExtraneous filter.
    You can see that the IgnoreExtraneous filter is active and the ConfigMap resource is not displayed in the Current State.

Current State filtered by IgnoreExtraneous resources

Current State filtered by IgnoreExtraneous resources

Health status for application resources

View and monitor health status of the selected application’s resources in the Current State tab, in Tree or List views.
Identify the health of an application resource through the color-coded border and the resource-type icon (Tree view), or the textual labels at the right of the resource (List view).

Health status Description Display in Tree view
Healthy Resource is functioning as required.
Progressing Resource is not healthy but can become healthy before the timeout occurs.
Suspended Resource is not functioning, and is either suspended or paused. For example, Cron job or a canary rollout.
Missing Resource is not present on the cluster.
Degraded Resource is not healthy, or a timeout occurred before it could reach a healthy status.
Unknown Resource does not have a health status, or the health status is not tracked in Argo CD. For example,ConfigMaps resource types.

See also Argo CD’s set of health checks.

Sync status for application resources

Similar to the health status, the Current State also tracks the sync status of all application resources. The sync status identifies if the live state of the application resource on the cluster is synced with its desired state in Git.
Identify the sync status through the icon on the left of the resource name and the color of the resource name (Tree view), or the textual labels at the right of the resource (List view).

The table describes the possible sync statuses for an application resource, and its representation in the Tree view.

Sync state Description Display in Tree view
Synced The live state of the resource on the cluster is identical to the desired state in Git.
Syncing The live state of the resource was not identical to the desired state, and is currently being synced.
Out-of-Sync The live state is not identical to the desired state.
To sync a resource, select the Sync option from the resource's context menu in Tree view.
Unknown The sync status could not be determined.

The application header displays the statuses of the current and previous sync operations. Clicking More opens the Sync panels with Sync Info, Sync Result and Commit Info. The Application Warnings/Errors panel surfaces sync errors on exceeding the maximum number of retries and when a sync operation extends beyond 30 minutes.

Manifests for application resources

In either Tree or List views, double-click an application resource to see its manifests. The manifests are displayed in the Summary tab.

Based on the selected resource type, you can also view logs, and events. Endpoints for example show only manifests, while pods show manifests, logs, and events.

To view information for the application resource, select the application node in Tree View. See Application information.

Current State Tree view: Resource tooltip

Current State Tree view: Resource tooltip

Here’s what you can see and do in the Summary tab:

Press Ctrl/Command F to search for strings in the manifest.

  • Desired and Live states of the resource manifest:
    • Managed resources, stored in Git repositories and using Git as the single source of truth, show both the Desired (Git) and the Live (cluster) states.
      If there are discrepancies between them, the Diff view is displayed, highlighting the differences in both versions for comparison.
    • Resources that are not stored in Git but live in the cluster, show only the Live state.
  • Share resource details: Copy the URL and send to others in your organization to share the resource details for collaborative review and analysis. Pasting the URL in a browser opens to the same view of the resource.
  • Hide Managed Fields: In the Live state version of the manifest, you can hide managed-field information from the manifest. Managed-fields show information on which field manager manages the field, after Kubernetes introduced Server Side Apply. For more information, see Field Management.

Logs for application resources

In either Tree or List views, double-click an application resource to see its logs. Logs are available only for resource types such as pods.

Current State: Logs for resource

Current State: Logs for resource
  • Search: Free-text search for any string in the log, using the next and previous buttons to navigate between the results, or Enter for sequential navigation.
  • Wrap: Enable/disable line wrapping
  • Download: Download the complete log into a text file for offline viewing and analysis.

Events for application resources

In either Tree or List views, double-click an application resource to see events in the Events tab.

If your runtime is lower than the version required to view events, you are notified to upgrade to the required version.

The Events tab displays both successful and failed events from Argo CD, starting with the most recent event. Argo CD displays events as they occur for an application resource, and retains event information for a duration of 30 minutes. Historical events older than this duration are removed, and the Events tab can be empty if there are no ongoing events.

Current State: Events for resource

Current State: Events for resource

Monitor deployments for selected application

Monitor an ongoing deployment for the selected application, and review its historical deployments. The Timeline tab displays the history of deployments for the selected application, sorted by the most recent deployment (default), labeled Current Version at the top.

The deployment chart displays the day-to-day deployments for the selected time period. Mouse over the dot on the deployment chart for information on historical deployments.

Applications Dashboard: Timeline tab

Applications Dashboard: Timeline tab

You can:

How to monitor deployments

  1. If required, set filters to narrow the number of deployments for the selected application.
  2. To view GitOps details for a deployment, in the deployment chart mouse over the dot that represents the deployment.
  3. To view additional details, expand the record for that deployment.

Applications Dashboard: Deployment chart

Applications Dashboard: Deployment chart

Monitor CI details by deployment

Each deployment record displays the complete CI history for that deployment.

  • The CI Builds shows the image(s) created or updated during deployment. Click to see the Images view in a new browser window.
  • The Pull Request (PRs) used for the commit.
  • The Jira Issues the PR aims to resolve or has resolved, with the current status.
  • The Committer who made the changes.

Monitor updated resources by deployment

Each deployment record also identifies the resources that were changed (created, updated, or removed) as part of that deployment in Updated Resources. You can trace the history of a resource, from the original to their final versions. For each version, you can see the actual change or changes through the Diff view. The Full View shows the complete resource manifest, with the diff view of the changes, while the Compact View shows only those lines with the changes.

For detailed information on the current state of a resource, switch to the Current State tab and click the resource node. See Monitoring application resources.

  1. Select a deployment record, and expand Updated Resources.

Timeline tab: Updated Resources for deployment

Timeline tab: Updated Resources for deployment
  1. To see the changes for a resource, click the resource name. The Full View of the resource manifest is displayed with the diff view of the changes.

Full View of changes for updated resource

Full View of changes for updated resource
  1. To view only the changes, click Compact View.

Full View of changes for updated resource

Full View of changes for updated resource

Monitor rollouts by deployment

A rollout is initiated when there is an Argo CD sync due to a change in the desired state.
Visualize ongoing and completed rollouts by deployments in Services.

To view and manage a rollout, you must have an Argo rollout resource defined for your application, and install Argo Rollouts in the cluster.

For detailed information on Argo Rollouts, see Argo Rollouts documentation.

Rollout progress

For an ongoing rollout, the rollout bar displays the progress of the rollout. You can also visualize the steps in the rollout, and control the rollout using the options in the Rollout Player.

Here is an example of an ongoing rollout for a canary deployment in Updated Services. The rollout comprising four steps has not started, and no traffic has not been routed as yet to the new version of the application.

Rollout in progress for deployment

Rollout in progress for deployment

Based on the current state of the rollout, you can pause and resume an ongoing rollout.
Here is an example of the rollout for the same deployment on completion. All traffic has been routed to the new version.

Rollout completed for deployment

Rollout completed for deployment
Manage ongoing rollout

Click the rollout name to visualize its steps. Manually manage the rollout through the controls in the Rollout Player. Here you can see that two out of four steps have been completed, 25% of the traffic has been routed, and the rollout has been paused for the defined length of time.

Rollout step visualization and Rollout Player

Rollout steps and Rollout Player
The table lists the controls in the Rollout Player to manage an ongoing rollout.

.table .table-bordered .table-hover} | Rollback player option | Description |
| ————– | ————| | Rollback | Not available currently. | | Resume | Resume a step that has been paused indefinitely. | | Skip step | Skip execution of current step. Such steps are marked as Skipped in the rollout visualization. | | Promote full rollout | Skip remaining pause, traffic routing, and analysis steps, and deploy the current release. |

Manually rollback completed rollout to previous revision

Manually rollback a completed rollout to a previous revision when and if needed. If after a successful analysis run and rollout, your application is not functioning as it should, you can rollback to a prior revision from the Rollout’s revision history. The revision depth is determined by the spec.revisionHistoryLimit parameter in the Rollout Specification. Manual rollback changes the live state of the rollout resource to the state in the previous commit that you select.

  1. In the Codefresh UI, select Applications.
  2. Select the application and select the Timeline tab.
  3. Click the name of the rollout to rollback.

Completed Rollout in Timeline

Completed Rollout in Timeline
  1. From the Choose version to Rollback dropdown, select the revision to rollback to.

Select rollout revision for rollback

Select rollout revision for rollback
  1. Review the changes in the revision.
  2. In the Rollout Player, click Rollback to.
View analysis run

If you have defined an analysis template for the rollout, you can check the run results and the manifest. The result of an analysis run determines if the rollout is completed, paused, or aborted. For detailed information, see the Analysis section in Argo Rollouts.

If you are running Background Analysis for example, the first step shows the list of analysis metrics.

Rollout: Analysis Metrics in Background Analysis

Analysis Template: Analysis Metrics in Background Analysis

Click the metric link in the step.

Analysis Template: Run Results and Manifest for Analysis Metric

Analysis Template: Run Results and Manifest for Analysis Metric

Monitor services for selected application

The Services tab shows the K8s services for each deployment of the application. Each service shows the number of replicas, the endpoint IP, the labels that reference the application, and the health status.

For more information, see the official documentation on Services.

Applications Dashboard: Services tab

Applications Dashboard: Services tab

Creating applications
Managing applications
Home dashboard
DORA metrics