public AgentConfigurationsTable readAgentConfigurationsTable() {
        AgentConfigurationsTable agentConfigurationsTable = new AgentConfigurationsTable();
        try {
            if (Objects.nonNull(yamlData)) {
                Map configurationsData = (Map) yamlData.get("configurations");
                if (configurationsData != null) {
                    configurationsData.forEach((k, v) -> {
                        Map map = (Map) v;
                        StringBuilder serviceConfigStr = new StringBuilder();
                        Map<String, String> config = new HashMap<>(map.size());
                        map.forEach((key, value) -> {
                            config.put(key.toString(), value.toString());

                            serviceConfigStr.append(key).append(":").append(value);
                        });

                        // noinspection UnstableApiUsage
                        AgentConfigurations agentConfigurations = new AgentConfigurations(
                            k.toString(), config,
                            Hashing.sha512().hashString(
                                serviceConfigStr.toString(), StandardCharsets.UTF_8).toString()
                        );
                        agentConfigurationsTable.getAgentConfigurationsCache()
                                                .put(agentConfigurations.getService(), agentConfigurations);
                    });
                }
            }
        } catch (Exception e) {
            log.error("Read ConfigurationDiscovery configurations error.", e);
        }
        return agentConfigurationsTable;
    }
@Test
    public void testReadAgentConfigurations() {
        AgentConfigurationsReader reader = new AgentConfigurationsReader(
            this.getClass().getClassLoader().getResourceAsStream("agent-dynamic-configuration.yml"));

        Map<String, AgentConfigurations> configurationCache = reader.readAgentConfigurationsTable()
                                                                    .getAgentConfigurationsCache();
        Assertions.assertEquals(2, configurationCache.size());
        AgentConfigurations agentConfigurations0 = configurationCache.get("serviceA");
        Assertions.assertEquals("serviceA", agentConfigurations0.getService());
        Assertions.assertEquals(2, agentConfigurations0.getConfiguration().size());
        Assertions.assertEquals("1000", agentConfigurations0.getConfiguration().get("trace.sample_rate"));
        Assertions.assertEquals(
            "/api/seller/seller/*", agentConfigurations0.getConfiguration().get("trace.ignore_path"));
        Assertions.assertEquals(
            "92670f1ccbdee60e14ffc054d70a5cf3f93f6b5fb1adb83b10bea4fec79b96e7bc5e7b188e231428853721ded42ec756663947316065617f3cfdf51d6dfc8da6",
            agentConfigurations0.getUuid()
        );

        AgentConfigurations agentConfigurations1 = configurationCache.get("serviceB");
        Assertions.assertEquals("serviceB", agentConfigurations1.getService());
        Assertions.assertEquals(2, agentConfigurations1.getConfiguration().size());
        Assertions.assertEquals("1000", agentConfigurations1.getConfiguration().get("trace.sample_rate"));
        Assertions.assertEquals(
            "/api/seller/seller/*", agentConfigurations1.getConfiguration().get("trace.ignore_path"));
        Assertions.assertEquals(
            "92670f1ccbdee60e14ffc054d70a5cf3f93f6b5fb1adb83b10bea4fec79b96e7bc5e7b188e231428853721ded42ec756663947316065617f3cfdf51d6dfc8da6",
            agentConfigurations0.getUuid()
        );
    }