Class ResourceGroup
java.lang.Object
org.apache.pulsar.broker.resourcegroup.ResourceGroup
The resource group (RG) data structure. One of these is created internally for every resource group configured.
The RG name is considered a key, and must be unique. Being the key, the name can't be modified after the
RG is created.
Tenants and Namespaces directly reference RGs. The usage is "vertical": i.e., a tenant or namespace references the
same RG across all of the monitoring classes it uses (Publish/Dispatch/...), instead of referencing one RG for
publish, another one for dispatch, etc.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classConvenience class for bytes and messages counts, which are used together in a lot of the following code.protected static classprotected static classstatic enumUsage "sense" for resource groups: publish and dispatch for now; may be more later (e.g., storage-monitoring) ToDo: "class" is vague; is there a better term to call this?static enumThe entities that might reference RGs are tenants, namespaces (and maybe topics, later). -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionResourceGroup(ResourceGroup other) protectedResourceGroup(ResourceGroupService rgs, String name, org.apache.pulsar.common.policies.data.ResourceGroup rgConfig) protectedResourceGroup(ResourceGroupService rgs, String rgName, org.apache.pulsar.common.policies.data.ResourceGroup rgConfig, ResourceUsagePublisher rgPublisher, ResourceUsageConsumer rgConsumer) -
Method Summary
Modifier and TypeMethodDescriptionprotected static ResourceGroup.BytesAndMessagesCountaccumulateBMCount(ResourceGroup.BytesAndMessagesCount... bmCounts) protected ResourceGroup.BytesAndMessagesCountprotected ResourceGroup.BytesAndMessagesCountgetID()protected ResourceGroup.BytesAndMessagesCountprotected ResourceGroup.BytesAndMessagesCountprotected ResourceGroup.BytesAndMessagesCountprotected longprotected longprotected ResourceGroup.BytesAndMessagesCountprotected static doublegetRgRemoteUsageByteCount(String rgName, String monClassName, String brokerName) protected static doublegetRgRemoteUsageMessageCount(String rgName, String monClassName, String brokerName) protected static doublegetRgUsageReportedCount(String rgName, String monClassName) protected voidincrementLocalUsageStats(ResourceGroup.ResourceGroupMonitoringClass monClass, ResourceGroup.BytesAndMessagesCount stats) registerUsage(String name, ResourceGroup.ResourceGroupRefTypes refType, boolean ref, ResourceUsageTransportManager transportManager) voidrgFillResourceUsage(ResourceUsage resourceUsage) voidrgResourceUsageListener(String broker, ResourceUsage resourceUsage) protected booleanprotected ResourceGroup.BytesAndMessagesCountupdateLocalQuota(ResourceGroup.ResourceGroupMonitoringClass monClass, ResourceGroup.BytesAndMessagesCount newQuota) protected voidupdateResourceGroup(org.apache.pulsar.common.policies.data.ResourceGroup rgConfig)
-
Field Details
-
resourceGroupName
-
monitoringClassFields
-
resourceGroupPublishLimiter
-
-
Constructor Details
-
ResourceGroup
protected ResourceGroup(ResourceGroupService rgs, String name, org.apache.pulsar.common.policies.data.ResourceGroup rgConfig) -
ResourceGroup
protected ResourceGroup(ResourceGroupService rgs, String rgName, org.apache.pulsar.common.policies.data.ResourceGroup rgConfig, ResourceUsagePublisher rgPublisher, ResourceUsageConsumer rgConsumer) -
ResourceGroup
-
-
Method Details
-
updateResourceGroup
protected void updateResourceGroup(org.apache.pulsar.common.policies.data.ResourceGroup rgConfig) -
getResourceGroupNumOfNSRefs
protected long getResourceGroupNumOfNSRefs() -
getResourceGroupNumOfTenantRefs
protected long getResourceGroupNumOfTenantRefs() -
registerUsage
protected ResourceGroupService.ResourceGroupOpStatus registerUsage(String name, ResourceGroup.ResourceGroupRefTypes refType, boolean ref, ResourceUsageTransportManager transportManager) -
getID
-
rgFillResourceUsage
-
rgResourceUsageListener
-
getConfLimits
protected ResourceGroup.BytesAndMessagesCount getConfLimits(ResourceGroup.ResourceGroupMonitoringClass monClass) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
incrementLocalUsageStats
protected void incrementLocalUsageStats(ResourceGroup.ResourceGroupMonitoringClass monClass, ResourceGroup.BytesAndMessagesCount stats) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
getLocalUsageStats
protected ResourceGroup.BytesAndMessagesCount getLocalUsageStats(ResourceGroup.ResourceGroupMonitoringClass monClass) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
getLocalUsageStatsCumulative
protected ResourceGroup.BytesAndMessagesCount getLocalUsageStatsCumulative(ResourceGroup.ResourceGroupMonitoringClass monClass) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
getLocalUsageStatsFromBrokerReports
protected ResourceGroup.BytesAndMessagesCount getLocalUsageStatsFromBrokerReports(ResourceGroup.ResourceGroupMonitoringClass monClass) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
getGlobalUsageStats
protected ResourceGroup.BytesAndMessagesCount getGlobalUsageStats(ResourceGroup.ResourceGroupMonitoringClass monClass) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
updateLocalQuota
protected ResourceGroup.BytesAndMessagesCount updateLocalQuota(ResourceGroup.ResourceGroupMonitoringClass monClass, ResourceGroup.BytesAndMessagesCount newQuota) throws org.apache.pulsar.client.admin.PulsarAdminException - Throws:
org.apache.pulsar.client.admin.PulsarAdminException
-
getRgPublishRateLimiterValues
-
getRgRemoteUsageByteCount
-
getRgRemoteUsageMessageCount
-
getRgUsageReportedCount
-
accumulateBMCount
protected static ResourceGroup.BytesAndMessagesCount accumulateBMCount(ResourceGroup.BytesAndMessagesCount... bmCounts) -
setUsageInMonitoredEntity
protected boolean setUsageInMonitoredEntity(ResourceGroup.ResourceGroupMonitoringClass monClass, NetworkUsage p)
-