Java API调用说明

SDK引用

  • 1、系统提供Java版本SDK,在调用API前,请参考业务接入-引用SDK的方式,在项目中引用Jar包。
  • 2、如果您对API使用安全性有更高要求,可以在本SDK的基础上额外增加数据加密或签名验证等处理流程。

调用示例


完整调用示例,您可以参考项目源码:com.dtstep.lighthouse.core.test.api.DataQueryTest中的单元测试方法,修改相应参数(xl-lighthouse注册中心服务地址,统计项id、统计组秘钥、查询维度、时间参数等)即可直接运行!

如有问题,请随时联系开发者~


/**
     * 对应API:LightHouse.dataQuery(int statId, String secretKey, String dimensValue, long startTime, long endTime)
     * @throws Exception
     *
     * 通过维度查询在指定时间范围内的统计结果
     *
     * 1、对于没有统计维度的统计项,示例:<stat-item title="每分钟_订单金额统计" stat="sum(amount)"/> dimensValue参数传Null;
     * 2、对于单维度的统计项,示例:<stat-item title="每分钟_各省份_订单金额统计" stat="sum(amount)" dimens="province"/> dimensValue参数传province字段对应的某个具体纬度值,如:山东或北京;
     * 3、对于多维度的统计项,示例:<stat-item title="每分钟_各业务线_各省份_订单金额统计" stat="sum(amount)" dimens="biz;province"/> dimensValue参数传biz字段和province字段对应的数值,并使用分号分割,如:家电;山东 或 手机;上海
     */
    @Test
    public void dataQueryTest() throws Exception {
        //LightHouse.init("10.206.6.11:4061,10.206.6.12:4061");//集群模式初始化
        LightHouse.init("10.206.6.26:4061");//单机模式初始化
        int statId = 1100594;
        String secretKey = "Kq2Ts5PCBBqTqCFfKtbHekcQObDOZDQMVNuN6Ej5";
        String dimensValue = null;
        long t = System.currentTimeMillis();
        long startTime = DateUtil.getDayStartTime(t);
        long endTime = DateUtil.getDayEndTime(t);
        //statId为对应统计项ID,secretKey为统计项所在统计组的秘钥,dimensValue为纬度值,startTime和endTime为查询起止时间范围
        List<StatValue> statValues = LightHouse.dataQuery(statId,secretKey,dimensValue,startTime,endTime);
        for (StatValue statValue : statValues) {
            //返回结果:batchTime为对应批次时间,dimensValue为相应纬度值,value为统计结果,statesValue如果统计项中包含多个统计函数,则按按顺序返回每一个统计函数的结果
            System.out.println("batchTime:" + statValue.getDisplayBatchTime() + ",dimensValue:" + statValue.getDimensValue() + ",value:" + statValue.getValue()
                    + ",statesValue:" + JsonUtil.toJSONString(statValue.getStatesValue()));
        }
        System.out.println("ok!");
    }

对外RPC接口说明

Lighthouse.init(String locators)

参数:locators,lighthouse远程RPC服务注册中心配置信息

作用:用于RPC服务初始化。

LightHouse.queryGroupInfo(String token)

参数:token,统计组标识

作用:用于判断统计组是否存在和校验统计组秘钥信息。

LightHouse.queryStatInfo(int statId)

参数:statId,统计项id

作用:用于判断统计项是否存在和校验统计项秘钥信息。

LightHouse.stat(String token,final String secretKey,Map paramMap,long timestamp)

参数: token,统计组标识;secretKey,统计组秘钥;paramMap,原始消息参数信息;timestamp,消息事件时间戳;

作用:用于上报统计原始消息信息。

LightHouse.stat(String token,final String secretKey,Map paramMap,int repeat, long timestamp)

参数: token,统计组标识;secretKey,统计组秘钥;paramMap,原始消息参数信息;repeat,统计消息重复上报次数,默认为1,timestamp,消息事件时间戳;

作用:用于上报统计原始消息信息。

LightHouse.dataQuery(int statId, String secretKey, String dimensValue, long startTime, long endTime)

参数:statId,统计项标识;secretKey,所属统计组秘钥;dimensValue,维度信息;startTime:查询开始时间;endTime:查询结束时间;

作用:通过指定维度和时间范围查询统计结果数据。

LightHouse.dataQuery(int statId, String secretKey, String dimensValue, List batchList)

参数:statId,统计项标识;secretKey,所属统计组秘钥;dimensValue,维度信息;batchList,批次时间;

作用:通过指定维度和批次时间查询统计结果数据。

LightHouse.dataQueryWithDimensList(int statId, String secretKey, List dimensValueList, long startTime,long endTime)

参数:statId,统计项标识;secretKey,所属统计组秘钥;dimensValueList,维度信息列表;batchList,批次时间;

作用:批量查询多条维度参数的统计结果数据。

LightHouse.dataQueryWithDimensList(int statId, String secretKey, List dimensValueList, List batchList)

参数:statId,统计项标识;secretKey,所属统计组秘钥;dimensValue,维度信息列表(没有维度参数传null,多维度统计按照统计项维度配置使用分号分割);batchList,批次时间;

作用:按照批次时间,批量查询多条维度参数的统计结果数据。

LightHouse.limitQuery(int statId, String secretKey, Long batchTime)

该接口需要v2.2.7以上版本支持!

参数:statId,统计项标识;secretKey,所属统计组秘钥;batchTime,批次时间;

作用:按照批次时间,查询Limit的统计结果。

参数说明

startTime/endTime参数

查询数据的起止时间,请使用13位时间戳。

batchList参数

系统按照统计项TimeParam参数划分统计周期,使用统计周期的开始时间作为统计周期的批次时间,在传递batchTime/batchList相关参数时,请使用13位时间戳。

比如:

  • 统计业务每分钟访问PV,则2024-05-02 13:15:00代表2024-05-02 13:15:00 至 2024-05-02 13:16:00的统计数据对应的批次时间。

  • 统计业务每2小时访问UV,则2024-05-02 14:00:00代表2024-05-02 14:00:00 至 2024-05-02 16:00:00的统计数据对应的批次时间。

  • 统计业务每天的订单量,则2024-05-02 00:00:00代表2024-05-02 00:00:00 至 2024-05-02 23:59:59的统计数据对应的批次时间。

dimensValue参数

没有维度参数传null,多维度统计按照统计项维度配置使用分号分割。

比如:

  • 查询业务每天订单金额,
<stat-item title="每天_订单金额" stat="sum(amount)" />

该示例没有统计维度则传null。

  • 查询每个各省份订单金额。
<stat-item title="每天_各省份_订单金额" stat="sum(amount)" dimens="provinceId"/>

该示例维度参数为省份,请传省份参数信息,格式示例:10101 或 10102。

  • 查询每个省份各个业务线的订单金额,该示例为维度查询,请按照
<stat-item title="每天_各省份_各业务线_订单金额" stat="sum(amount)" dimens="provinceId;bizId"/>

该示例维度参数为省份和业务线,请按照provinceId;bizId的格式拼接维度参数,格式示例:10101;1 或 10102;2。

results matching ""

    No results matching ""