Skip to content

[BUG] nvidia_triton integration fails on IPv6 clusters due to unbracketed hostname parsing #22624

@raouf-aghrout

Description

@raouf-aghrout

In nvidia_triton/check.py, the check derives the server info URL by calling urlparse(endpoint).hostname. For IPv6 addresses, hostname returns the raw IP without square brackets. When the check appends the port (e.g., :8000/v2), it creates an invalid URI, causing urllib3 to throw a LocationParseError / AttributeError.

Workaround identified: Setting collect_server_info: false allows the check to proceed with core metrics only.

For example:

2026-02-13 05:40:01 UTC | CORE | ERROR | (pkg/collector/worker/check_logger.go:71 in Error) | check:nvidia_triton | Error running check: [{"message":"Failed to parse: [http://2406](http://0.0.9.102/):da14:8ba:1a22:904b::2:8000/v2","traceback":"Traceback (most recent call last):\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/urllib3/util/url.py\", line 423, in parse_url\n host, port = _HOST_PORT_RE.match(host_port).groups() # type: ignore[union-attr]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAttributeError: 'NoneType' object has no attribute 'groups'\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/requests/models.py\", line 433, in prepare_url\n scheme, auth, host, port, path, query, fragment = parse_url(url)\n ~~~~~~~~~^^^^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/urllib3/util/url.py\", line 449, in parse_url\n raise LocationParseError(source_url) from e\nurllib3.exceptions.LocationParseError: Failed to parse: [http://2406](http://0.0.9.102/):da14:8ba:1a22:904b::2:8000/v2\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/base/checks/base.py\", line 1316, in run\n self.check(instance)\n ~~~~~~~~~~^^^^^^^^^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/nvidia_triton/check.py\", line 93, in check\n self._submit_version_metadata()\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/base/checks/base.py\", line 1092, in entrypoint\n method(self, *args, **kwargs)\n ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/nvidia_triton/check.py\", line 54, in _submit_version_metadata\n response = self.http.get(endpoint)\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/base/utils/http.py\", line 438, in get\n return self._request('get', url, options)\n ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/base/utils/http.py\", line 503, in _request\n response = self.make_request_aia_chasing(request_method, method, url, new_options, persist)\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/datadog_checks/base/utils/http.py\", line 509, in make_request_aia_chasing\n response = request_method(url, **new_options)\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/requests/sessions.py\", line 602, in get\n return self.request(\"GET\", url, **kwargs)\n ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/requests/sessions.py\", line 575, in request\n prep = self.prepare_request(req)\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/requests/sessions.py\", line 484, in prepare_request\n p.prepare(\n ~~~~~~~~~^\n method=request.method.upper(),\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ...<10 lines>...\n hooks=merge_hooks(request.hooks, self.hooks),\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n )\n ^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/requests/models.py\", line 367, in prepare\n self.prepare_url(url, params)\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\n File \"/opt/datadog-agent/embedded/lib/python3.13/site-packages/requests/models.py\", line 435, in prepare_url\n raise InvalidURL(*e.args)\nrequests.exceptions.InvalidURL: Failed to parse: [http://2406](http://0.0.9.102/):da14:8ba:1a22:904b::2:8000/v2\n"}]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions