SOLVED Instructions about Brigde Metrics
-
Hi,
We tried to create a metric to monitor all the bridges we have, but when trying to add new jmx mbean metrics, we didn’t find any specific metrics that wlsdm considers a valid monitoring to be selected as a metric.
We need to show the name of all the fights we have, and their counts and limits and their status.The problem print is attached.
Regards.
-
Hi,
You can use below script to create your own Bridge dashboard. Please update regarding values then apply it to your domain.
Regards…
File —> monitorBridges.py
redirect('/dev/null', 'false') connect('weblogic', 'WELCOME1', 't3://localhost:7001') domainRuntime() cd('ServerRuntimes') serverRuntimes=ls(returnMap='true') for serverRuntime in serverRuntimes: stopRedirect() print '>>>>>>>>>>> ' + serverRuntime redirect('/dev/null', 'false') cd('/ServerRuntimes/' + serverRuntime + '/MessagingBridgeRuntimes') bridgeRuntimes=ls(returnMap='true') for bridgeRuntime in bridgeRuntimes: cd(bridgeRuntime) print serverRuntime+' | '+String.valueOf(cmo.getName())+' | '+String.valueOf(cmo.getState())+' | '+String.valueOf(cmo.getDescription()) cd("..")
DevOps MBean Script:
java -cp /Users/admineer/u01/Oracle/Middleware1221/Oracle_Home/wlserver/server/lib/weblogic.jar -Djava.security.egd=file:/dev/./urandom weblogic.WLST -skipWLSModuleScanning monitorBridges.py | grep "|" | awk 'BEGIN{print "SERVERNAME | BRIDGE NAME | STATE | DESCRIPTION "}; {print};' | awk -F"|" '{print $1,$2,$3,$4}' | awk '{if ($3 == "Inactive") { icnt++ } else if ($3 == "Active") { acnt++ }} END { print "Inactive="icnt+0,"\n""Active="acnt+0 }'
Callback Script:
java -cp /Users/admineer/u01/Oracle/Middleware1221/Oracle_Home/wlserver/server/lib/weblogic.jar -Djava.security.egd=file:/dev/./urandom weblogic.WLST -skipWLSModuleScanning monitorBridges.py | grep "|" | awk 'BEGIN{print "SERVERNAME | BRIDGE NAME | STATE | DESCRIPTION "}; {print};' | awk -F"|" '/Inactive/ {print $1,"|",$2,"|",$3,"|",$4}'
-
Hi,
Your search result is returning string value. Which metric do you want to monitor?
If you tell the value in WebLogic console, we will find the corresponding JMX MBean.
Regards.
-
Hi,
We make count with a this mbean “MessagingBridgeRuntime".
Same like this …
java weblogic.Admin -url ${CONN} GET -pretty -type MessagingBridgeRuntime -mbean ${DOMAIN}:ServerRuntime=${mserver},Name=${bridge},Type=MessagingBridgeRuntime,Location=${mserver} -property Descripti on -property Name -property State | egrep -v "deprecated|MBeanName" | tee ${BT}
only for monitoring any problem with many bridges that we have, but its necessary to us, a metrics for bridge -> JMS Bridge Destinations …
Regards.
-
Hi,
What we understand is you would like to monitor the STATE of Bridge definitions, please confirm? This value is STRING that is why you are unable to add as a numeric chart to WLSDM Mbean dashboards.
But you can create your own Generic Devops MBean to monitor all these BRIDGE definitions.
- You can search any of MBean value on below page “WLSDM Menu > Operational Tools & Utils > MBean Search” to see the current values and object types
- You have another options which WLST web console; it is available on “WLSDM Menu > Operational Tools & Utils > WLST Web Console”.
- Just use your own script to generate a “Generic DevOps MBean” by transforming the script to create NUMERIC result sets for the ACTIVE states. i.e. “1” value for the ACTIVE states.
You can check these samples and technical blog posts to create your own DevOps Means objects.
https://medium.com/wlsdmforweblogic/wlsdm-generic-devops-mbean-index/homeIf you want we can have a quick tech teams meeting to help about creating JMS Bridge Dashboard?
Hope these helps; otherwise please let us know the result
Kind Reagards.
-
Hi,
We haven’t seen these features, which you’re showing, maybe our copy, it’s free.
Regards.
-
Hi,
These suggestions need to be done in WLSDM console; not for WL-OPC console. If any notification occurs for the JMS Bridge then it would be available on WL-OPC console.
Kind Regards…
-
Hi,
My apologize about that.
Follow attached the printAnd that the answer of WST console
Connecting to t3://osbdmn:7000 with userid admWLS …
Successfully connected to Admin Server ‘OSB_DMN_Admin’ that belongs to domain ‘OSB_DMN’.Warning: An insecure protocol was used to connect to the
server. To ensure on-the-wire security, the SSL port or
Admin port should be used instead.
serverConfig:/>ls()
dr-- AdminConsole
dr-- AppDeployments
dr-- BridgeDestinations
dr-- Clusters
dr-- CoherenceClusterSystemResources
dr-- CoherenceServers
dr-- CustomResources
dr-- DeploymentConfiguration
dr-- Deployments
dr-- EmbeddedLDAP
dr-- ErrorHandlings
dr-- FileStores
dr-- ForeignJNDIProviders
dr-- InternalAppDeployments
dr-- InternalLibraries
dr-- JDBCDataSourceFactories
dr-- JDBCStores
dr-- JDBCSystemResources
dr-- JMSBridgeDestinations
dr-- JMSInteropModules
dr-- JMSServers
dr-- JMSSystemResources
dr-- JMX
dr-- JPA
dr-- JTA
dr-- JoltConnectionPools
dr-- Libraries
dr-- Log
dr-- LogFilters
dr-- Machines
dr-- MailSessions
dr-- MessagingBridges
dr-- MigratableTargets
dr-- RemoteSAFContexts
dr-- RestfulManagementServices
dr-- SAFAgents
dr-- SNMPAgent
dr-- SNMPAgentDeployments
dr-- Security
dr-- SecurityConfiguration
dr-- SelfTuning
dr-- Servers
dr-- ShutdownClasses
dr-- SingletonServices
dr-- StartupClasses
dr-- SystemResources
dr-- Targets
dr-- VirtualHosts
dr-- WLDFSystemResources
dr-- WLECConnectionPools
dr-- WSReliableDeliveryPolicies
dr-- WTCServers
dr-- WebAppContainer
dr-- WebserviceSecurities
dr-- XMLEntityCaches
dr-- XMLRegistries-r-- AdminServerName OSB_DMN_Admin
-r-- AdministrationMBeanAuditingEnabled false
-r-- AdministrationPort 9002
-r-- AdministrationPortEnabled false
-r-- AdministrationProtocol t3s
-r-- ArchiveConfigurationCount 50
-r-- ClusterConstraintsEnabled false
-r-- ConfigBackupEnabled true
-r-- ConfigurationAuditType log
-r-- ConfigurationVersion 10.3.6.0
-r-- ConsoleContextPath console
-r-- ConsoleEnabled true
-r-- ConsoleExtensionDirectory console-ext
-r-- DomainVersion 10.3.6.0
-r-- ExalogicOptimizationsEnabled false
-r-- GuardianEnabled false
-r-- InternalAppsDeployOnDemandEnabled false
-r-- LastModificationTime 0
-r-- Name OSB_DMN
-r-- Notes null
-r-- Parent null
-r-- ProductionModeEnabled true
-r-- RootDirectory /opt/web/wl/osb11.1.1.9/domains/OSB_DMN
-r-- ServerMigrationHistorySize -1
-r-- ServiceMigrationHistorySize -1
-r-- Type Domain-r-x freezeCurrentValue Void : String(attributeName)
-r-x isSet Boolean : String(propertyName)
-r-x unSet Void : String(propertyName)serverConfig:/>cd(“MessagingBridgeRuntime”)
This Exception occurred at Tue Sep 21 16:06:00 BRT 2021.
javax.management.AttributeNotFoundException: com.bea:Name=OSB_DMN,Type=Domain:MessagingBridgeRuntime
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:221)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:222)
at javax.management.remote.rmi.RMIConnectionImpl_1036_WLStub.getAttribute(Unknown Source)
at weblogic.management.remote.common.RMIConnectionWrapper$12.run(ClientProviderBase.java:807)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at weblogic.security.Security.runAs(Security.java:61)
at weblogic.management.remote.common.RMIConnectionWrapper.getAttribute(ClientProviderBase.java:805)
at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:878)
at weblogic.management.scripting.BrowseHandler.regularPush(BrowseHandler.java:429)
at weblogic.management.scripting.BrowseHandler.cd(BrowseHandler.java:688)
at weblogic.management.scripting.WLScriptContext.cd(WLScriptContext.java:196)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.python.core.PyReflectedFunction.call(Unknown Source)
at org.python.core.PyMethod.call(Unknown Source)
at org.python.core.PyObject.call(Unknown Source)
at org.python.core.PyObject.invoke(Unknown Source)
at org.python.pycode._pyx56.cd$5(:173)
at org.python.pycode._pyx56.call_function()
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyFunction.call(Unknown Source)
at org.python.pycode._pyx65.f$0(:1)
at org.python.pycode._pyx65.call_function()
at org.python.core.PyTableCode.call(Unknown Source)
at org.python.core.PyCode.call(Unknown Source)
at org.python.core.Py.runCode(Py.java:1224)
at org.python.core.Py.exec(Py.java:1250)
at org.python.util.PythonInterpreter.exec(Unknown Source)
at weblogic.management.scripting.utils.WLSTInterpreter.exec(WLSTInterpreter.java:511)
at com.wlsdm.F.I.B(NativeWLSTExecuter.java:136)
at com.wlsdm.F.I.exec1(NativeWLSTExecuter.java:59)
at com.wlsdm.frontend.provider.w.A(WLSTGUICommands.java:63)
at com.wlsdm.frontend.provider.w.executeCommand(WLSTGUICommands.java:214)
at com.wlsdm.P.H.K(WLST.java:365)
at com.wlsdm.P.H.A(WLST.java:106)
at com.wlsdm.P.H.doGet(WLST.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at com.wlsdm.P.D.doFilter(RRFilter.java:327)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1493)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)Regards.
-
Hi,
You can use below script to create your own Bridge dashboard. Please update regarding values then apply it to your domain.
Regards…
File —> monitorBridges.py
redirect('/dev/null', 'false') connect('weblogic', 'WELCOME1', 't3://localhost:7001') domainRuntime() cd('ServerRuntimes') serverRuntimes=ls(returnMap='true') for serverRuntime in serverRuntimes: stopRedirect() print '>>>>>>>>>>> ' + serverRuntime redirect('/dev/null', 'false') cd('/ServerRuntimes/' + serverRuntime + '/MessagingBridgeRuntimes') bridgeRuntimes=ls(returnMap='true') for bridgeRuntime in bridgeRuntimes: cd(bridgeRuntime) print serverRuntime+' | '+String.valueOf(cmo.getName())+' | '+String.valueOf(cmo.getState())+' | '+String.valueOf(cmo.getDescription()) cd("..")
DevOps MBean Script:
java -cp /Users/admineer/u01/Oracle/Middleware1221/Oracle_Home/wlserver/server/lib/weblogic.jar -Djava.security.egd=file:/dev/./urandom weblogic.WLST -skipWLSModuleScanning monitorBridges.py | grep "|" | awk 'BEGIN{print "SERVERNAME | BRIDGE NAME | STATE | DESCRIPTION "}; {print};' | awk -F"|" '{print $1,$2,$3,$4}' | awk '{if ($3 == "Inactive") { icnt++ } else if ($3 == "Active") { acnt++ }} END { print "Inactive="icnt+0,"\n""Active="acnt+0 }'
Callback Script:
java -cp /Users/admineer/u01/Oracle/Middleware1221/Oracle_Home/wlserver/server/lib/weblogic.jar -Djava.security.egd=file:/dev/./urandom weblogic.WLST -skipWLSModuleScanning monitorBridges.py | grep "|" | awk 'BEGIN{print "SERVERNAME | BRIDGE NAME | STATE | DESCRIPTION "}; {print};' | awk -F"|" '/Inactive/ {print $1,"|",$2,"|",$3,"|",$4}'
-
Hi,
This collection of bridge status, does it occur in what period? We saw that it has a 30 second timeout, but I didn’t see the collection interval time, or if it’s realtime.
Regards.
-
Hi,
Default interval is 120 seconds and you can change this value in “system.monitoring.genericmbean.harvest.frequency” property as below.
PS: If you change this value, it will effect all “Custom MBeans”.
Regards.