|
1 | 1 | import logging
|
2 | 2 | from abc import abstractmethod, ABCMeta
|
3 | 3 |
|
4 |
| -import time |
5 |
| -import copy |
6 | 4 | import base64
|
7 | 5 | import random
|
8 | 6 |
|
9 | 7 | from cbor2 import loads
|
10 | 8 |
|
11 |
| -from . import utils |
12 |
| -from .enums import PNStatusCategory, PNReconnectionPolicy, PNOperationType |
13 |
| -from .models.consumer.common import PNStatus |
14 |
| -from .models.server.subscribe import SubscribeEnvelope |
15 |
| -from .dtos import SubscribeOperation, UnsubscribeOperation |
16 |
| -from .callbacks import SubscribeCallback, ReconnectionCallback |
17 |
| -from .models.subscription_item import SubscriptionItem |
18 |
| -from .errors import PNERR_INVALID_ACCESS_TOKEN |
19 |
| -from .exceptions import PubNubException |
| 9 | +from pubnub import utils |
| 10 | +from pubnub.enums import PNStatusCategory, PNReconnectionPolicy |
| 11 | +from pubnub.models.consumer.common import PNStatus |
| 12 | +from pubnub.models.server.subscribe import SubscribeEnvelope |
| 13 | +from pubnub.dtos import SubscribeOperation, UnsubscribeOperation |
| 14 | +from pubnub.callbacks import SubscribeCallback, ReconnectionCallback |
| 15 | +from pubnub.models.subscription_item import SubscriptionItem |
| 16 | +from pubnub.errors import PNERR_INVALID_ACCESS_TOKEN |
| 17 | +from pubnub.exceptions import PubNubException |
20 | 18 |
|
21 | 19 | logger = logging.getLogger("pubnub")
|
22 | 20 |
|
@@ -398,171 +396,6 @@ def get_custom_params(self):
|
398 | 396 | return {}
|
399 | 397 |
|
400 | 398 |
|
401 |
| -class TelemetryManager: |
402 |
| - TIMESTAMP_DIVIDER = 1000 |
403 |
| - MAXIMUM_LATENCY_DATA_AGE = 60 |
404 |
| - CLEAN_UP_INTERVAL = 1 |
405 |
| - CLEAN_UP_INTERVAL_MULTIPLIER = 1000 |
406 |
| - |
407 |
| - def __init__(self): |
408 |
| - self.latencies = {} |
409 |
| - |
410 |
| - @abstractmethod |
411 |
| - def _start_clean_up_timer(self): |
412 |
| - pass |
413 |
| - |
414 |
| - @abstractmethod |
415 |
| - def _stop_clean_up_timer(self): |
416 |
| - pass |
417 |
| - |
418 |
| - def operation_latencies(self): |
419 |
| - operation_latencies = {} |
420 |
| - |
421 |
| - for endpoint_name, endpoint_latencies in self.latencies.items(): |
422 |
| - latency_key = 'l_' + endpoint_name |
423 |
| - |
424 |
| - endpoint_average_latency = self.average_latency_from_data(endpoint_latencies) |
425 |
| - |
426 |
| - if endpoint_average_latency > 0: |
427 |
| - operation_latencies[latency_key] = endpoint_average_latency |
428 |
| - |
429 |
| - return operation_latencies |
430 |
| - |
431 |
| - def clean_up_telemetry_data(self): |
432 |
| - current_timestamp = time.time() |
433 |
| - copy_latencies = copy.deepcopy(self.latencies) |
434 |
| - |
435 |
| - for endpoint_name, endpoint_latencies in copy_latencies.items(): |
436 |
| - for latency_information in endpoint_latencies: |
437 |
| - if current_timestamp - latency_information["timestamp"] > self.MAXIMUM_LATENCY_DATA_AGE: |
438 |
| - self.latencies[endpoint_name].remove(latency_information) |
439 |
| - |
440 |
| - if len(self.latencies[endpoint_name]) == 0: |
441 |
| - del self.latencies[endpoint_name] |
442 |
| - |
443 |
| - def store_latency(self, latency, operation_type): |
444 |
| - if operation_type != PNOperationType.PNSubscribeOperation and latency > 0: |
445 |
| - endpoint_name = self.endpoint_name_for_operation(operation_type) |
446 |
| - |
447 |
| - store_timestamp = time.time() |
448 |
| - |
449 |
| - if endpoint_name not in self.latencies: |
450 |
| - self.latencies[endpoint_name] = [] |
451 |
| - |
452 |
| - latency_entry = { |
453 |
| - "timestamp": store_timestamp, |
454 |
| - "latency": latency, |
455 |
| - } |
456 |
| - |
457 |
| - self.latencies[endpoint_name].append(latency_entry) |
458 |
| - |
459 |
| - @staticmethod |
460 |
| - def average_latency_from_data(endpoint_latencies): |
461 |
| - total_latency = 0 |
462 |
| - |
463 |
| - for latency_data in endpoint_latencies: |
464 |
| - total_latency += latency_data['latency'] |
465 |
| - |
466 |
| - return total_latency / len(endpoint_latencies) |
467 |
| - |
468 |
| - @staticmethod |
469 |
| - def endpoint_name_for_operation(operation_type): |
470 |
| - endpoint = { |
471 |
| - PNOperationType.PNPublishOperation: 'pub', |
472 |
| - PNOperationType.PNFireOperation: 'pub', |
473 |
| - PNOperationType.PNSendFileNotification: "pub", |
474 |
| - |
475 |
| - PNOperationType.PNHistoryOperation: 'hist', |
476 |
| - PNOperationType.PNHistoryDeleteOperation: 'hist', |
477 |
| - PNOperationType.PNMessageCountOperation: 'mc', |
478 |
| - |
479 |
| - PNOperationType.PNUnsubscribeOperation: 'pres', |
480 |
| - PNOperationType.PNWhereNowOperation: 'pres', |
481 |
| - PNOperationType.PNHereNowOperation: 'pres', |
482 |
| - PNOperationType.PNGetState: 'pres', |
483 |
| - PNOperationType.PNSetStateOperation: 'pres', |
484 |
| - PNOperationType.PNHeartbeatOperation: 'pres', |
485 |
| - |
486 |
| - PNOperationType.PNAddChannelsToGroupOperation: 'cg', |
487 |
| - PNOperationType.PNRemoveChannelsFromGroupOperation: 'cg', |
488 |
| - PNOperationType.PNChannelGroupsOperation: 'cg', |
489 |
| - PNOperationType.PNChannelsForGroupOperation: 'cg', |
490 |
| - PNOperationType.PNRemoveGroupOperation: 'cg', |
491 |
| - |
492 |
| - PNOperationType.PNAddPushNotificationsOnChannelsOperation: 'push', |
493 |
| - PNOperationType.PNPushNotificationEnabledChannelsOperation: 'push', |
494 |
| - PNOperationType.PNRemoveAllPushNotificationsOperation: 'push', |
495 |
| - PNOperationType.PNRemovePushNotificationsFromChannelsOperation: 'push', |
496 |
| - |
497 |
| - PNOperationType.PNAccessManagerAudit: 'pam', |
498 |
| - PNOperationType.PNAccessManagerGrant: 'pam', |
499 |
| - PNOperationType.PNAccessManagerRevoke: 'pam', |
500 |
| - PNOperationType.PNTimeOperation: 'pam', |
501 |
| - |
502 |
| - PNOperationType.PNAccessManagerGrantToken: 'pamv3', |
503 |
| - PNOperationType.PNAccessManagerRevokeToken: 'pamv3', |
504 |
| - |
505 |
| - PNOperationType.PNSignalOperation: 'sig', |
506 |
| - |
507 |
| - PNOperationType.PNSetUuidMetadataOperation: 'obj', |
508 |
| - PNOperationType.PNGetUuidMetadataOperation: 'obj', |
509 |
| - PNOperationType.PNRemoveUuidMetadataOperation: 'obj', |
510 |
| - PNOperationType.PNGetAllUuidMetadataOperation: 'obj', |
511 |
| - |
512 |
| - PNOperationType.PNSetChannelMetadataOperation: 'obj', |
513 |
| - PNOperationType.PNGetChannelMetadataOperation: 'obj', |
514 |
| - PNOperationType.PNRemoveChannelMetadataOperation: 'obj', |
515 |
| - PNOperationType.PNGetAllChannelMetadataOperation: 'obj', |
516 |
| - |
517 |
| - PNOperationType.PNSetChannelMembersOperation: 'obj', |
518 |
| - PNOperationType.PNGetChannelMembersOperation: 'obj', |
519 |
| - PNOperationType.PNRemoveChannelMembersOperation: 'obj', |
520 |
| - PNOperationType.PNManageChannelMembersOperation: 'obj', |
521 |
| - |
522 |
| - PNOperationType.PNSetMembershipsOperation: 'obj', |
523 |
| - PNOperationType.PNGetMembershipsOperation: 'obj', |
524 |
| - PNOperationType.PNRemoveMembershipsOperation: 'obj', |
525 |
| - PNOperationType.PNManageMembershipsOperation: 'obj', |
526 |
| - |
527 |
| - PNOperationType.PNAddMessageAction: 'msga', |
528 |
| - PNOperationType.PNGetMessageActions: 'msga', |
529 |
| - PNOperationType.PNDeleteMessageAction: 'msga', |
530 |
| - |
531 |
| - PNOperationType.PNGetFilesAction: 'file', |
532 |
| - PNOperationType.PNDeleteFileOperation: 'file', |
533 |
| - PNOperationType.PNGetFileDownloadURLAction: 'file', |
534 |
| - PNOperationType.PNFetchFileUploadS3DataAction: 'file', |
535 |
| - PNOperationType.PNDownloadFileAction: 'file', |
536 |
| - PNOperationType.PNSendFileAction: 'file', |
537 |
| - |
538 |
| - |
539 |
| - PNOperationType.PNFetchMessagesOperation: "hist", |
540 |
| - |
541 |
| - PNOperationType.PNCreateSpaceOperation: "obj", |
542 |
| - PNOperationType.PNUpdateSpaceOperation: "obj", |
543 |
| - PNOperationType.PNFetchSpaceOperation: "obj", |
544 |
| - PNOperationType.PNFetchSpacesOperation: "obj", |
545 |
| - PNOperationType.PNRemoveSpaceOperation: "obj", |
546 |
| - |
547 |
| - PNOperationType.PNCreateUserOperation: "obj", |
548 |
| - PNOperationType.PNUpdateUserOperation: "obj", |
549 |
| - PNOperationType.PNFetchUserOperation: "obj", |
550 |
| - PNOperationType.PNFetchUsersOperation: "obj", |
551 |
| - PNOperationType.PNRemoveUserOperation: "obj", |
552 |
| - |
553 |
| - PNOperationType.PNAddUserSpacesOperation: "obj", |
554 |
| - PNOperationType.PNAddSpaceUsersOperation: "obj", |
555 |
| - PNOperationType.PNUpdateUserSpacesOperation: "obj", |
556 |
| - |
557 |
| - PNOperationType.PNUpdateSpaceUsersOperation: "obj", |
558 |
| - PNOperationType.PNFetchUserMembershipsOperation: "obj", |
559 |
| - PNOperationType.PNFetchSpaceMembershipsOperation: "obj", |
560 |
| - |
561 |
| - }[operation_type] |
562 |
| - |
563 |
| - return endpoint |
564 |
| - |
565 |
| - |
566 | 399 | class TokenManager:
|
567 | 400 | def __init__(self):
|
568 | 401 | self.token = None
|
|
0 commit comments