blob: aca04d575e295b3127f206224111cb108d2070f2 [file] [log] [blame]
#
# 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.
#
from skywalking.protocol.common.Command_pb2 import Command
from skywalking.command.base_command import BaseCommand
from skywalking.utils.lang import tostring
@tostring
class ProfileTaskCommand(BaseCommand):
NAME = 'ProfileTaskQuery'
def __init__(self,
serial_number: str = '',
task_id: str = '',
endpoint_name: str = '',
duration: int = -1,
min_duration_threshold: int = -1,
dump_period: int = -1,
max_sampling_count: int = -1,
start_time: int = -1,
create_time: int = -1):
BaseCommand.__init__(self, self.NAME, serial_number)
self.task_id = task_id # type: str
self.endpoint_name = endpoint_name # type: str
self.duration = duration # type: int
self.min_duration_threshold = min_duration_threshold # type: int
self.dump_period = dump_period # type: int
self.max_sampling_count = max_sampling_count # type: int
self.start_time = start_time # type: int
self.create_time = create_time # type: int
@staticmethod
def deserialize(command: Command):
serial_number = None
task_id = None
endpoint_name = None
duration = None
min_duration_threshold = None
dump_period = None
max_sampling_count = None
start_time = None
create_time = None
for pair in command.args:
if pair.key == 'SerialNumber':
serial_number = pair.value
elif pair.key == 'EndpointName':
endpoint_name = pair.value
elif pair.key == 'TaskId':
task_id = pair.value
elif pair.key == 'Duration':
duration = pair.value
elif pair.key == 'MinDurationThreshold':
min_duration_threshold = pair.value
elif pair.key == 'DumpPeriod':
dump_period = pair.value
elif pair.key == 'MaxSamplingCount':
max_sampling_count = pair.value
elif pair.key == 'StartTime':
start_time = pair.value
elif pair.key == 'CreateTime':
create_time = pair.value
return ProfileTaskCommand(serial_number=serial_number, task_id=task_id,
endpoint_name=endpoint_name, duration=duration,
min_duration_threshold=min_duration_threshold, dump_period=dump_period,
max_sampling_count=max_sampling_count, start_time=start_time,
create_time=create_time)