





















@@ -719,6 +719,47 @@ describe("qa-otel-smoke receiver bounds", () => {
719719expect(kill).not.toHaveBeenCalled();
720720});
721721722+it("moves Docker collector telemetry off the default host port", async () => {
723+const child = new EventEmitter() as EventEmitter & {
724+stderr: EventEmitter;
725+stdout: EventEmitter;
726+};
727+child.stderr = new EventEmitter();
728+child.stdout = new EventEmitter();
729+let writtenConfig = "";
730+const stopDockerContainer = vi.fn(async () => {});
731+const removePath = vi.fn(async () => {});
732+const ports = [4318, 4318, 45679];
733+734+const collector = await testing.startDockerOtelCollector(4317, {
735+mkdtemp: async () => "/tmp/openclaw-otel-collector-test",
736+platform: "linux",
737+randomUUID: () => "00000000-0000-4000-8000-000000000000",
738+reserveLocalPort: async () => ports.shift() ?? 49999,
739+rm: removePath as never,
740+spawn: vi.fn(() => child) as never,
741+ stopDockerContainer,
742+waitForLocalPort: async () => {},
743+writeFile: async (_path, config) => {
744+writtenConfig = String(config);
745+},
746+});
747+748+expect(writtenConfig).toContain("endpoint: 127.0.0.1:4318");
749+expect(writtenConfig).toContain("telemetry:");
750+expect(writtenConfig).toContain("address: 127.0.0.1:45679");
751+expect(writtenConfig).not.toContain("address: :8888");
752+753+await collector.close();
754+expect(stopDockerContainer).toHaveBeenCalledWith(
755+"openclaw-otel-smoke-00000000-0000-4000-8000-000000000000",
756+);
757+expect(removePath).toHaveBeenCalledWith("/tmp/openclaw-otel-collector-test", {
758+force: true,
759+recursive: true,
760+});
761+});
762+722763it("cleans Docker collector containers and temp config after readiness failures", async () => {
723764const tempRoot = mkdtempSync(path.join(os.tmpdir(), "openclaw-qa-otel-collector-"));
724765const collectorDir = path.join(tempRoot, "collector");
@@ -729,6 +770,7 @@ describe("qa-otel-smoke receiver bounds", () => {
729770child.stderr = new EventEmitter();
730771child.stdout = new EventEmitter();
731772const stopDockerContainer = vi.fn(async () => {});
773+const ports = [4318, 45679];
732774733775try {
734776await expect(
@@ -738,7 +780,7 @@ describe("qa-otel-smoke receiver bounds", () => {
738780return collectorDir;
739781},
740782randomUUID: () => "00000000-0000-4000-8000-000000000000",
741-reserveLocalPort: async () => 4318,
783+reserveLocalPort: async () => ports.shift() ?? 49999,
742784spawn: vi.fn(() => child) as never,
743785 stopDockerContainer,
744786waitForLocalPort: async () => {
@@ -765,6 +807,7 @@ describe("qa-otel-smoke receiver bounds", () => {
765807};
766808child.stderr = new EventEmitter();
767809child.stdout = new EventEmitter();
810+const ports = [4318, 45679];
768811769812try {
770813let thrown: unknown;
@@ -775,7 +818,7 @@ describe("qa-otel-smoke receiver bounds", () => {
775818return collectorDir;
776819},
777820randomUUID: () => "00000000-0000-4000-8000-000000000000",
778-reserveLocalPort: async () => 4318,
821+reserveLocalPort: async () => ports.shift() ?? 49999,
779822spawn: vi.fn(() => child) as never,
780823stopDockerContainer: vi.fn(async () => {}),
781824waitForLocalPort: async (_port, _timeout, readFailure) => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。