code: public Either<String, Tuple2<List<String>, List<String>>> aboutDataSource(String name, Map<String, String> reqHeaders) {
          Either<String, Either<JSONArray, JSONObject>> resp = fireCommand("druid/coordinator/v1/metadata/datasources/" + name, null, reqHeaders);
          if (resp.isLeft()) {
              return new Left<>(resp.left().get());
          }
          Either<JSONArray, JSONObject> goodResp = resp.right().get();
          if (goodResp.isRight()) {
              JSONObject data = goodResp.right().get();
              if (data.has("segments")) {
                  JSONArray segmentsArray = data.getJSONArray("segments");
                  if (segmentsArray.length() == 0) {
                      return new Left<>("No segments received..");
                  }
                  JSONObject firstItem = segmentsArray.getJSONObject(0);
                  String dims = firstItem.getString("dimensions");
                  String metrics = firstItem.getString("metrics");
                  return new Right<>(new Tuple2<>(Arrays.asList(dims.split(",")), Arrays.asList(metrics.split(","))));
              } else {
                  return new Left<>("No segments key in the response..");
              }
          }
          return new Left<>("Unexpected response " + goodResp.left().get().toString());
      }
docs: Left is error Right is Tuple <dimensions, metrics>
  
  @param name
  @param reqHeaders
  @return