kafka_neu-1778570057504.zip-extract/kafka-4.2.0-src/tests/kafkatest/services/performance/performance.py

Path
kafka_neu-1778570057504.zip-extract/kafka-4.2.0-src/tests/kafkatest/services/performance/performance.py
Status
scanned
Type
file
Name
performance.py
Extension
.py
Programming language
Python
Mime type
text/x-script.python
File type
Python script, ASCII text executable
Tag

      
    
Rootfs path

      
    
Size
3133 (3.1 KB)
MD5
a792817e95f766c1348be3f6c1ac5f6e
SHA1
1e550025a6115a8912a817828a2df6836b3ae4a3
SHA256
287d59a0044444991b0958993b2d61afd05aa3f9b25dc5e23973d401b7319feb
SHA512

      
    
SHA1_git
0d1f5b04882ac6c7fb2d51ee36f0b451a3ae7f90
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
performance.py | 3.1 KB |

# 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 ducktape.services.background_thread import BackgroundThreadService from kafkatest.directory_layout.kafka_path import KafkaPathResolverMixin class PerformanceService(KafkaPathResolverMixin, BackgroundThreadService): def __init__(self, context=None, num_nodes=0, root="/mnt/*", stop_timeout_sec=30): super(PerformanceService, self).__init__(context, num_nodes) self.results = [None] * self.num_nodes self.stats = [[] for x in range(self.num_nodes)] self.stop_timeout_sec = stop_timeout_sec self.root = root def java_class_name(self): """ Returns the name of the Java class which this service creates. Subclasses should override this method, so that we know the name of the java process to stop. If it is not overridden, we will kill all java processes in PerformanceService#stop_node (for backwards compatibility.) """ return "" def stop_node(self, node): node.account.kill_java_processes(self.java_class_name(), clean_shutdown=True, allow_fail=True) stopped = self.wait_node(node, timeout_sec=self.stop_timeout_sec) assert stopped, "Node %s: did not stop within the specified timeout of %s seconds" % \ (str(node.account), str(self.stop_timeout_sec)) def clean_node(self, node): node.account.kill_java_processes(self.java_class_name(), clean_shutdown=False, allow_fail=True) node.account.ssh("rm -rf -- %s" % self.root, allow_fail=False) def throughput(records_per_sec, mb_per_sec): """Helper method to ensure uniform representation of throughput data""" return { "records_per_sec": records_per_sec, "mb_per_sec": mb_per_sec } def latency(latency_50th_ms, latency_99th_ms, latency_999th_ms): """Helper method to ensure uniform representation of latency data""" return { "latency_50th_ms": latency_50th_ms, "latency_99th_ms": latency_99th_ms, "latency_999th_ms": latency_999th_ms } def compute_aggregate_throughput(perf): """Helper method for computing throughput after running a performance service.""" aggregate_rate = sum([r['records_per_sec'] for r in perf.results]) aggregate_mbps = sum([r['mbps'] for r in perf.results]) return throughput(aggregate_rate, aggregate_mbps)
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
27.93
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 8 8
Package URL License Primary language
pkg:pypi/kafkatest@4.2.0 apache-2.0 Python