mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-10-14 11:21:29 +00:00
feat: implement Profile in the dashboard (#19)
This commit is contained in:
124
src/graphql/fragments/profile.ts
Normal file
124
src/graphql/fragments/profile.ts
Normal file
@@ -0,0 +1,124 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export const ProfileSegment = {
|
||||
variable: "$segmentId: String",
|
||||
query: `
|
||||
segment: getProfiledSegment(segmentId: $segmentId) {
|
||||
spans {
|
||||
spanId
|
||||
parentSpanId
|
||||
serviceCode
|
||||
startTime
|
||||
endTime
|
||||
endpointName
|
||||
type
|
||||
peer
|
||||
component
|
||||
isError
|
||||
layer
|
||||
tags {
|
||||
key value
|
||||
}
|
||||
logs {
|
||||
time
|
||||
data {
|
||||
key
|
||||
value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
};
|
||||
|
||||
export const CreateProfileTask = {
|
||||
variable: "$creationRequest: ProfileTaskCreationRequest",
|
||||
query: `
|
||||
task: createProfileTask(creationRequest: $creationRequest) {
|
||||
id
|
||||
errorReason
|
||||
}
|
||||
`,
|
||||
};
|
||||
|
||||
export const GetProfileTaskList = {
|
||||
variable: "$endpointName: String, $serviceId: ID",
|
||||
query: `
|
||||
taskList: getProfileTaskList(endpointName: $endpointName, serviceId: $serviceId) {
|
||||
serviceId
|
||||
endpointName
|
||||
startTime
|
||||
duration
|
||||
minDurationThreshold
|
||||
dumpPeriod
|
||||
maxSamplingCount
|
||||
id
|
||||
logs {
|
||||
id
|
||||
instanceId
|
||||
instanceName
|
||||
operationType
|
||||
operationTime
|
||||
}
|
||||
}
|
||||
`,
|
||||
};
|
||||
export const GetProfileTaskSegmentList = {
|
||||
variable: "$taskID: String",
|
||||
query: `
|
||||
segmentList: getProfileTaskSegmentList(taskID: $taskID) {
|
||||
segmentId
|
||||
endpointNames
|
||||
start
|
||||
duration
|
||||
traceIds
|
||||
isError
|
||||
}
|
||||
`,
|
||||
};
|
||||
|
||||
export const GetProfileAnalyze = {
|
||||
variable: "$segmentId: String!, $timeRanges: [ProfileAnalyzeTimeRange!]!",
|
||||
query: `
|
||||
analyze: getProfileAnalyze(segmentId: $segmentId, timeRanges: $timeRanges) {
|
||||
tip
|
||||
trees {
|
||||
elements {
|
||||
id
|
||||
parentId
|
||||
codeSignature
|
||||
duration
|
||||
durationChildExcluded
|
||||
count
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
};
|
||||
export const GetProfileTaskLogs = {
|
||||
variable: "$taskID: String",
|
||||
query: `
|
||||
taskLogs: getProfileTaskLogs(taskID: $taskID) {
|
||||
id
|
||||
instanceId
|
||||
instanceName
|
||||
operationTime
|
||||
operationType
|
||||
}
|
||||
`,
|
||||
};
|
@@ -22,6 +22,7 @@ import * as dashboard from "./query/dashboard";
|
||||
import * as topology from "./query/topology";
|
||||
import * as trace from "./query/trace";
|
||||
import * as log from "./query/log";
|
||||
import * as profile from "./query/profile";
|
||||
|
||||
const query: { [key: string]: string } = {
|
||||
...app,
|
||||
@@ -30,6 +31,7 @@ const query: { [key: string]: string } = {
|
||||
...topology,
|
||||
...trace,
|
||||
...log,
|
||||
...profile,
|
||||
};
|
||||
class Graphql {
|
||||
private queryData = "";
|
||||
|
39
src/graphql/query/profile.ts
Normal file
39
src/graphql/query/profile.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {
|
||||
ProfileSegment,
|
||||
CreateProfileTask,
|
||||
GetProfileTaskList,
|
||||
GetProfileTaskSegmentList,
|
||||
GetProfileAnalyze,
|
||||
GetProfileTaskLogs,
|
||||
} from "../fragments/profile";
|
||||
|
||||
export const queryProfileSegment = `query queryProfileSegment(${ProfileSegment.variable}) {${ProfileSegment.query}}`;
|
||||
|
||||
export const saveProfileTask = `mutation createProfileTask(${CreateProfileTask.variable}) {${CreateProfileTask.query}}`;
|
||||
|
||||
export const getProfileTaskList = `query getProfileTaskList(${GetProfileTaskList.variable}) {
|
||||
${GetProfileTaskList.query}}`;
|
||||
|
||||
export const getProfileTaskSegmentList = `query getProfileTaskSegmentList(${GetProfileTaskSegmentList.variable}) {
|
||||
${GetProfileTaskSegmentList.query}}`;
|
||||
|
||||
export const getProfileAnalyze = `query getProfileAnalyze(${GetProfileAnalyze.variable}) {${GetProfileAnalyze.query}}`;
|
||||
|
||||
export const getProfileTaskLogs = `query profileTaskLogs(${GetProfileTaskLogs.variable}) {${GetProfileTaskLogs.query}}`;
|
Reference in New Issue
Block a user