Skip to main content

Enabling and Understanding Application Status

This topic describes how to configure your application so that you can view the status of application instances in the Replicated Vendor Portal. It also describes the meaning of the different application statuses.

Overview

The Vendor Portal displays data on the status of instances of your application that are running in customer environments, including the current state (such as Ready or Degraded), the instance uptime, and the average amount of time it takes your application to reach a Ready state during installation. For more information about viewing instance data, see Instance Details.

To compute and display these insights, the Vendor Portal interprets and aggregates the state of one or more of the supported Kubernetes resources that are deployed to the cluster as part of your application.

The following resource types are supported:

  • Deployment
  • StatefulSet
  • Service
  • Ingress
  • PersistentVolumeClaims (PVC)
  • DaemonSet

For more information about how instance data is sent to the Vendor Portal, see About Instance and Event Data.

Enable Application Status Insights

To display insights on application status, the Vendor Portal requires that your application has one or more status informers. Status informers indicate the Kubernetes resources deployed as part of your application that are monitored for changes in state.

To enable status informers for your application, do one of the following, depending on the installation method:

Helm Installations

To get instance status data for applications installed with Helm, the Replicated SDK must be installed alongside the application. For information about how to distribute and install the SDK with your application, see Installing the Replicated SDK.

After you include the SDK as a dependency, the requirements for enabling status informers vary depending on how your application is installed:

  • For applications installed by running helm install or helm upgrade, the Replicated SDK automatically detects and reports the status of the resources that are part of the Helm release. No additional configuration is required to get instance status data.

  • For applications installed by running helm template then kubectl apply, the SDK cannot automatically detect and report the status of resources. You must configure custom status informers by overriding the statusInformers value in the Replicated SDK chart. For example:

    # Helm chart values.yaml file 

    replicated:
    statusInformers:
    - deployment/nginx
    - statefulset/mysql
    note

    Applications installed by running helm install or helm upgrade can also use custom status informers. When the replicated.statusInformers field is set, the SDK detects and reports the status of only the resources included in the replicated.statusInformers field.

KOTS Installations

For applications installed with Replicated KOTS, configure one or more status informers in the KOTS Application custom resource. For more information, see Adding Resource Status Informers.

When Helm-based applications that include the Replicated SDK and are deployed by KOTS, the SDK inherits the status informers configured in the KOTS Application custom resource. In this case, the SDK does not automatically report the status of the resources that are part of the Helm release. This prevents discrepancies in the instance data in the vendor platform.

View Resource Status Insights

For applications that include the Replicated SDK, the Vendor Portal also displays granular resource status insights in addition to the aggregate application status. For example, you can hover over the App status field on the Instance details page to view the statuses of the indiviudal resources deployed by the application, as shown below:

resource status pop up

View a larger version of this image

Viewing these resource status details is helpful for understanding which resources are contributing to the aggregate application status. For example, when an application has an Unavailable status, that means that one or more resources are Unavailable. By viewing the resource status insights on the Instance details page, you can quickly understand which resource or resources are Unavailable for the purpose of troubleshooting.

Granular resource status details are automatically available when the Replicated SDK is installed alongside the application. For information about how to distribute and install the SDK with your application, see Installing the Replicated SDK.

Understanding Application Status

This section provides information about how Replicated interprets and aggregates the status of Kubernetes resources for your application to report an application status.

About Resource Statuses

Possible resource statuses are Ready, Updating, Degraded, Unavailable, and Missing.

The following table lists the supported Kubernetes resources and the conditions that contribute to each status:

DeploymentStatefulSetServiceIngressPVCDaemonSet
ReadyReady replicas equals desired replicasReady replicas equals desired replicasAll desired endpoints are ready, any load balancers have been assignedAll desired backend service endpoints are ready, any load balancers have been assignedClaim is boundReady daemon pods equals desired scheduled daemon pods
UpdatingThe deployed replicas are from a different revisionThe deployed replicas are from a different revisionN/AN/AN/AThe deployed daemon pods are from a different revision
DegradedAt least 1 replica is ready, but more are desiredAt least 1 replica is ready, but more are desiredAt least one endpoint is ready, but more are desiredAt least one backend service endpoint is ready, but more are desiredN/AAt least one daemon pod is ready, but more are desired
UnavailableNo replicas are readyNo replicas are readyNo endpoints are ready, no load balancer has been assignedNo backend service endpoints are ready, no load balancer has been assignedClaim is pending or lostNo daemon pods are ready
MissingMissing is an initial deployment status indicating that informers have not reported their status because the application has just been deployed and the underlying resource has not been created yet. After the resource is created, the status changes. However, if a resource changes from another status to Missing, then the resource was either deleted or the informers failed to report a status.

Aggregate Application Status

When you provide more than one Kubernetes resource, Replicated aggregates all resource statuses to display a single application status.

Replicated uses the least available resource status to represent the aggregate application status. For example, if at least one resource has an Unavailable status, then the aggregate application status is Unavailable.

The following table describes the resource statuses that define each aggregate application status:

Resource StatusesAggregate Application Status
No status available for any resourceMissing
One or more resources UnavailableUnavailable
One or more resources DegradedDegraded
One or more resources UpdatingUpdating
All resources ReadyReady