Recent Discussions
Groovy 4 timeline and Collector question
https://www.logicmonitor.com/release-notes/collector-release-notes-timelinecollector Right now, because we have a lot of custom things that use groovy, we are still working on making sure all of our custom modules are groovy4 compliant. All the out-of-box ones are upgraded. But in order to do that, I paused our portal updates by ONLY having the checkbox set for REQUIRED. So our version is in the 35.xxx range because I paused it in November or December. One item I'm having a bug with is jsonslurper giving a faststring service error, but i found out its been fixed since 36.200 by setting a parameter ( groovy.v4.classloader.enable ) to true. But the collector version we have doesnt even have that in the Agent.conf. So in order to test properly, and make sure its working, I want to upgrade to a version PRIOR to EA 37.100. EA 37.100 will absolutely force us onto Groovy4. But if I briefly toggle the schedule to also include Optional General, it looks like I will get 37.002. So I'm just hoping someone can sanity check me ..... I assume 37.002 is BEFORE the forced 37.200? And that 37.002 still supports both groovy2 and groovy4? So I may have a short window where I could upgrade our collectors. I'm just confused because the URL I posted lists the date for EA 37.100 as coming BEFORE GD 37.002, and now of course the latest EA is 37.200. If I take advantage of my short window, which shows that Optional General will gove me 37.002, will that version still support groovy2 AND groovy4? I expect to be done with my testing within 1-2 weeks but I'm stuck on this faststring bug. Thanks!SolvedLewis_Beard6 days agoExpert71Views2likes4CommentsLM SDK API v3 - get_device_list not responding
Hello, My script that was running without issue yesterday now just indefinitely hangs, if i interrupt it it looks like it just times out code: import logicmonitor_sdk from logicmonitor_sdk.rest import ApiException import json import sys from pprint import pprint from rich.console import Console import time company = 'company' id = 'abc' token = 'lma_' configuration = logicmonitor_sdk.Configuration() configuration.company = company configuration.access_id = id configuration.access_key = token lm = logicmonitor_sdk.LMApi(logicmonitor_sdk.ApiClient(configuration)) def get_devices(): try: devices = [] end_found = False offset = 0 size = 100 while not end_found: current = lm.get_device_list(size=size, start=offset).items devices += current offset += len(current) end_found = len(current) != size pprint(devices) return devices except ApiException as e: print('Exception Caught: %s\n' % e) Traceback: ^CTraceback (most recent call last): File "/Users/lee/dev/logic_monitor/test.py", line 155, in <module> get_devices() ~~~~~~~~~~~^^ File "/Users/lee/dev/logic_monitor/test.py", line 28, in get_devices current = lm.get_device_list(size=size, start=offset).items ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/api/lm_api.py", line 16986, in get_device_list (data) = self.get_device_list_with_http_info(**kwargs) # noqa: E501 File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/api/lm_api.py", line 17070, in get_device_list_with_http_info return self.api_client.call_api( ~~~~~~~~~~~~~~~~~~~~~~~~^ '/device/devices', 'GET', ^^^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... _request_timeout=params.get('_request_timeout'), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ collection_formats=collection_formats) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/api_client.py", line 333, in call_api return self.__call_api(resource_path, method, ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ path_params, query_params, header_params, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<2 lines>... _return_http_data_only, collection_formats, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _preload_content, _request_timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/api_client.py", line 162, in __call_api response_data = self.request( method, url, query_params=query_params, headers=header_params, post_params=post_params, body=body, _preload_content=_preload_content, _request_timeout=_request_timeout) File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/api_client.py", line 355, in request return self.rest_client.GET(url, ~~~~~~~~~~~~~~~~~~~~^^^^^ query_params=query_params, ^^^^^^^^^^^^^^^^^^^^^^^^^^ _preload_content=_preload_content, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _request_timeout=_request_timeout, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ headers=headers) ^^^^^^^^^^^^^^^^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/rest.py", line 231, in GET return self.request("GET", url, ~~~~~~~~~~~~^^^^^^^^^^^^ headers=headers, ^^^^^^^^^^^^^^^^ _preload_content=_preload_content, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _request_timeout=_request_timeout, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ query_params=query_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/logicmonitor_sdk/rest.py", line 206, in request r = self.pool_manager.request(method, url, fields=query_params, preload_content=_preload_content, timeout=timeout, headers=headers) File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/urllib3/_request_methods.py", line 135, in request return self.request_encode_url( ~~~~~~~~~~~~~~~~~~~~~~~^ method, ^^^^^^^ ...<3 lines>... **urlopen_kw, ^^^^^^^^^^^^^ ) ^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/urllib3/_request_methods.py", line 182, in request_encode_url return self.urlopen(method, url, **extra_kw) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/urllib3/poolmanager.py", line 443, in urlopen response = conn.urlopen(method, u.request_uri, **kw) File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/urllib3/connectionpool.py", line 787, in urlopen response = self._make_request( conn, ...<10 lines>... **response_kw, ) File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/urllib3/connectionpool.py", line 534, in _make_request response = conn.getresponse() File "/Users/lee/dev/logic_monitor/venv/lib/python3.13/site-packages/urllib3/connection.py", line 516, in getresponse httplib_response = super().getresponse() File "/opt/homebrew/Cellar/python@3.13/3.13.1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/http/client.py", line 1428, in getresponse response.begin() ~~~~~~~~~~~~~~^^ File "/opt/homebrew/Cellar/python@3.13/3.13.1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/http/client.py", line 331, in begin version, status, reason = self._read_status() ~~~~~~~~~~~~~~~~~^^ File "/opt/homebrew/Cellar/python@3.13/3.13.1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/http/client.py", line 292, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/python@3.13/3.13.1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/socket.py", line 719, in readinto return self._sock.recv_into(b) ~~~~~~~~~~~~~~~~~~~~^^^ File "/opt/homebrew/Cellar/python@3.13/3.13.1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/ssl.py", line 1304, in recv_into return self.read(nbytes, buffer) ~~~~~~~~~^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/python@3.13/3.13.1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/ssl.py", line 1138, in read return self._sslobj.read(len, buffer) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ KeyboardInterrupt If i call another endpoint say get_alert_list, i have no issues and get a response.Solvedllama17 days agoNeophyte64Views0likes2CommentsCollector inherited properties bug
When editing a Collector that inherits properties from a Collector Group, the Edit dialog SHOULD NOT present the inherited properties for editing (orange highlight). This is a bug. Further, the value when edited gains the text " (inherited from Group)", which it SHOULD NOT (red highlight). Saving from this dialog results in the values incorrectly being applied to the Collector, which is NOT what the user intended.SolvedDavid_Bond31 days agoProfessor105Views3likes1CommentIs it possible to create threshold monitoring using if or or?
I have a customer who is currently monitoring the datapoint status (=3 - failed) of the interface using Meraki. The LogicModule is Cisco_Meraki_UplinkApplianceStatus. However, this client needs to monitor two conditions: if the interface status is =3 (failed) or =0 (not connected), it should alert. Is it possible to create this kind of logic? Regards guysSolved152Views5likes3CommentsReset system.sysinfo that is incorrect
I inherited maintenance of our LogicMonitor instance. There is a vCenter instance that has been there for ages that has system.sysinfo set to Microsoft Windows. This causes other things to have issues, like default monitors, and other AppliesTo functions like isWindows() to be incorrect. Is there a way to reset the system.sysinfo? I have tried active discovery many times already.Solvedthethird782 months agoNeophyte91Views1like5CommentsDocker Container Dynamic Groups by type.
We have a fleet of ECS servers supporting our application containers. Each container type does a specific workload. The Dynamic Groups function in LM does not really offer, unless I am really doing this incorrectly, a way to take a string and build the group on that string. 20 containers over 12 ECS nodes run a container where the system.instanceDescription has a string of: ecs-nonprod-pcs1-platform-prod-webreport-cell-d-ecs-1-nonprod-webreport-cell-d-ecs-111222333444555666 Example: isCAS() && (isAppDev() || system.instanceDescription =~ "webreport") Right now we have to look at every ECS node (pcs1) and find each one. More ECS nodes and more containers this is not going to scale well.Solvedismolnar2 months agoNeophyte95Views6likes2CommentsHalo PSA - Integration
Hi, we are currently moving away from AutoTask into HaloPSA. We've been given the instructions from the vendor however, if we follow these instructions the ticket information won't be passed back to LM and auto closing of alerts could potentially fail. Has anyone had success using JSON to integrate or do we need to fall back to XML despite instructions from Halo.Solvedzebedee2 months agoNeophyte99Views1like2CommentsMeraki Netscan Filters
Hi, We have an issue with Netscan for Meraki where the meraki.tags filter does not seem to be honoured If we have a device tagged "Production" and we add a filter for meraki.tags Production it appears to pick this up, however if it has multiple tags it no longer works. I cannot seem to figure out the correct filter to get this to work, has anyone had any joy with this and can point me in the right direction. I have tried equal, contain, regexmatch and none seem to work correctly. Many Thanks KieranSolvedKieran2 months agoNeophyte86Views2likes4CommentsCollector Device Name should be a Hyperlink but isnt
I have a collector, that is up and functioning normally, on my Collectors page, and as we always do, it monitors itself. I can get to the resource by searching for it in the Resource tree, I can see the resource lists itself as the collector with the right collector number. The IP on the resource matches the IP of the collector when I log into the collector itself. So everything seems fine. BUT on the Collectors page (UIv3) where you have Status, ID, Device Name, Description, Version, Manage, Logs, SDT, Resoruces, etc .... the Device Name is supposed to be a blue Hyperlink, same as it is for every other collector we have. I cant figure out what little tricky thing is making this link not work. I feel like I may have asked here or somewhere before. What are the requirements for that collector to have the Device link to its own resource? It is for sure monitoring itself. Thanks!SolvedLewis_Beard2 months agoExpert144Views6likes5Comments