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