skywalking/command/profile_task_command.py (60 lines of code) (raw):

# # 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)