Health status worker metrics improvements (#10442)

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
nitin
2025-03-04 12:47:12 +05:30
committed by GitHub
parent 41db10daff
commit 327f0cd370
27 changed files with 1468 additions and 312 deletions

View File

@ -43,10 +43,8 @@ export enum AdminPanelHealthServiceStatus {
export type AdminPanelWorkerQueueHealth = {
__typename?: 'AdminPanelWorkerQueueHealth';
id: Scalars['String'];
metrics: WorkerQueueMetrics;
queueName: Scalars['String'];
status: AdminPanelHealthServiceStatus;
workers: Scalars['Float'];
};
export type Analytics = {
@ -1310,6 +1308,7 @@ export type Query = {
getPostgresCredentials?: Maybe<PostgresCredentials>;
getProductPrices: BillingProductPricesOutput;
getPublicWorkspaceDataByDomain: PublicWorkspaceDataOutput;
getQueueMetrics: QueueMetricsData;
getRoles: Array<Role>;
getSSOIdentityProviders: Array<FindAvailableSsoidpOutput>;
getServerlessFunctionSourceCode?: Maybe<Scalars['JSON']>;
@ -1369,6 +1368,12 @@ export type QueryGetProductPricesArgs = {
};
export type QueryGetQueueMetricsArgs = {
queueName: Scalars['String'];
timeRange?: InputMaybe<QueueMetricsTimeRange>;
};
export type QueryGetServerlessFunctionSourceCodeArgs = {
input: GetServerlessFunctionSourceCodeInput;
};
@ -1413,6 +1418,35 @@ export type QueryValidatePasswordResetTokenArgs = {
passwordResetToken: Scalars['String'];
};
export type QueueMetricsData = {
__typename?: 'QueueMetricsData';
data: Array<QueueMetricsSeries>;
details?: Maybe<WorkerQueueMetrics>;
queueName: Scalars['String'];
timeRange: QueueMetricsTimeRange;
workers: Scalars['Float'];
};
export type QueueMetricsDataPoint = {
__typename?: 'QueueMetricsDataPoint';
x: Scalars['Float'];
y: Scalars['Float'];
};
export type QueueMetricsSeries = {
__typename?: 'QueueMetricsSeries';
data: Array<QueueMetricsDataPoint>;
id: Scalars['String'];
};
export enum QueueMetricsTimeRange {
FourHours = 'FourHours',
OneDay = 'OneDay',
OneHour = 'OneHour',
SevenDays = 'SevenDays',
TwelveHours = 'TwelveHours'
}
export type Relation = {
__typename?: 'Relation';
sourceFieldMetadata: Field;
@ -1970,9 +2004,11 @@ export type WorkerQueueMetrics = {
__typename?: 'WorkerQueueMetrics';
active: Scalars['Float'];
completed: Scalars['Float'];
completedData?: Maybe<Array<Scalars['Float']>>;
delayed: Scalars['Float'];
failed: Scalars['Float'];
prioritized: Scalars['Float'];
failedData?: Maybe<Array<Scalars['Float']>>;
failureRate: Scalars['Float'];
waiting: Scalars['Float'];
};
@ -2394,7 +2430,15 @@ export type GetIndicatorHealthStatusQueryVariables = Exact<{
}>;
export type GetIndicatorHealthStatusQuery = { __typename?: 'Query', getIndicatorHealthStatus: { __typename?: 'AdminPanelHealthServiceData', id: string, label: string, description: string, status: AdminPanelHealthServiceStatus, details?: string | null, queues?: Array<{ __typename?: 'AdminPanelWorkerQueueHealth', id: string, queueName: string, status: AdminPanelHealthServiceStatus, workers: number, metrics: { __typename?: 'WorkerQueueMetrics', failed: number, completed: number, waiting: number, active: number, delayed: number, prioritized: number } }> | null } };
export type GetIndicatorHealthStatusQuery = { __typename?: 'Query', getIndicatorHealthStatus: { __typename?: 'AdminPanelHealthServiceData', id: string, label: string, description: string, status: AdminPanelHealthServiceStatus, details?: string | null, queues?: Array<{ __typename?: 'AdminPanelWorkerQueueHealth', id: string, queueName: string, status: AdminPanelHealthServiceStatus }> | null } };
export type GetQueueMetricsQueryVariables = Exact<{
queueName: Scalars['String'];
timeRange?: InputMaybe<QueueMetricsTimeRange>;
}>;
export type GetQueueMetricsQuery = { __typename?: 'Query', getQueueMetrics: { __typename?: 'QueueMetricsData', queueName: string, timeRange: QueueMetricsTimeRange, workers: number, details?: { __typename?: 'WorkerQueueMetrics', failed: number, completed: number, waiting: number, active: number, delayed: number, failureRate: number } | null, data: Array<{ __typename?: 'QueueMetricsSeries', id: string, data: Array<{ __typename?: 'QueueMetricsDataPoint', x: number, y: number }> }> } };
export type GetSystemHealthStatusQueryVariables = Exact<{ [key: string]: never; }>;
@ -4238,15 +4282,6 @@ export const GetIndicatorHealthStatusDocument = gql`
id
queueName
status
workers
metrics {
failed
completed
waiting
active
delayed
prioritized
}
}
}
}
@ -4279,6 +4314,59 @@ export function useGetIndicatorHealthStatusLazyQuery(baseOptions?: Apollo.LazyQu
export type GetIndicatorHealthStatusQueryHookResult = ReturnType<typeof useGetIndicatorHealthStatusQuery>;
export type GetIndicatorHealthStatusLazyQueryHookResult = ReturnType<typeof useGetIndicatorHealthStatusLazyQuery>;
export type GetIndicatorHealthStatusQueryResult = Apollo.QueryResult<GetIndicatorHealthStatusQuery, GetIndicatorHealthStatusQueryVariables>;
export const GetQueueMetricsDocument = gql`
query GetQueueMetrics($queueName: String!, $timeRange: QueueMetricsTimeRange) {
getQueueMetrics(queueName: $queueName, timeRange: $timeRange) {
queueName
timeRange
workers
details {
failed
completed
waiting
active
delayed
failureRate
}
data {
id
data {
x
y
}
}
}
}
`;
/**
* __useGetQueueMetricsQuery__
*
* To run a query within a React component, call `useGetQueueMetricsQuery` and pass it any options that fit your needs.
* When your component renders, `useGetQueueMetricsQuery` returns an object from Apollo Client that contains loading, error, and data properties
* you can use to render your UI.
*
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
*
* @example
* const { data, loading, error } = useGetQueueMetricsQuery({
* variables: {
* queueName: // value for 'queueName'
* timeRange: // value for 'timeRange'
* },
* });
*/
export function useGetQueueMetricsQuery(baseOptions: Apollo.QueryHookOptions<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useQuery<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>(GetQueueMetricsDocument, options);
}
export function useGetQueueMetricsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useLazyQuery<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>(GetQueueMetricsDocument, options);
}
export type GetQueueMetricsQueryHookResult = ReturnType<typeof useGetQueueMetricsQuery>;
export type GetQueueMetricsLazyQueryHookResult = ReturnType<typeof useGetQueueMetricsLazyQuery>;
export type GetQueueMetricsQueryResult = Apollo.QueryResult<GetQueueMetricsQuery, GetQueueMetricsQueryVariables>;
export const GetSystemHealthStatusDocument = gql`
query GetSystemHealthStatus {
getSystemHealthStatus {