### What would you like to be added?

Add a new metrics to record the end-to-end startup latency of the pod since pod created to pod ready **for the first time**. The metrics will include all stages of the pod life cycle like scheduling and image pulling.

**Metrics Name**: `kubelet_pod_first_ready_latency_seconds {namespace=<namespace_name>, pod=<pod_name>, uid=<uid>, node=<node_name>}` 

**Metrics Type**: Gauge

**Metrics Unit**: Seconds

The metric exists for the lifetime of the pod.

### Why is this needed?

Kubelet currently reports a Histogram metric `pod_start_total_duration_seconds` that gives users overview of the pod end-to-end startup latency from pod creation to pod **running**. However, pod ready will usually be the signal to say that a pod is ready to serve traffic.

Having the new metric will allow users to track how long it takes for their pods under the workload to fully start and ready to serve traffic, and with the metrics label of `node_name`, this metric can be a supplementation to the existing metric `pod_start_total_duration_seconds` if users want to track the node-level pod end-to-end startup latency from creation to ready.

Also, user could aggregate the metric by the workload (Deployment, StatefulSet, and etc.) to present the workload-level pod end-to-end startup latency.
Kubelet: Add a metrics in kubelet to track how long it takes for pod to fully start
This is a GitHub Issue
repo:kubernetes
owner:kubernetes
Title : Kubelet: Add a metrics in kubelet to track how long it takes for pod to fully start
Issue date:

--- start body ---
### What would you like to be added?

Add a new metrics to record the end-to-end startup latency of the pod since pod created to pod ready **for the first time**. The metrics will include all stages of the pod life cycle like scheduling and image pulling.

**Metrics Name**: `kubelet_pod_first_ready_latency_seconds {namespace=<namespace_name>, pod=<pod_name>, uid=<uid>, node=<node_name>}` 

**Metrics Type**: Gauge

**Metrics Unit**: Seconds

The metric exists for the lifetime of the pod.

### Why is this needed?

Kubelet currently reports a Histogram metric `pod_start_total_duration_seconds` that gives users overview of the pod end-to-end startup latency from pod creation to pod **running**. However, pod ready will usually be the signal to say that a pod is ready to serve traffic.

Having the new metric will allow users to track how long it takes for their pods under the workload to fully start and ready to serve traffic, and with the metrics label of `node_name`, this metric can be a supplementation to the existing metric `pod_start_total_duration_seconds` if users want to track the node-level pod end-to-end startup latency from creation to ready.

Also, user could aggregate the metric by the workload (Deployment, StatefulSet, and etc.) to present the workload-level pod end-to-end startup latency.
--- end body ---
