in store/reader.go [92:127]
func (r *kustoSpanReader) GetServices(ctx context.Context) ([]string, error) {
clientRequestId := GetClientId()
kustoStmt := kql.New(queryResultsCacheAge).AddTable(r.tableName).AddLiteral(getServicesQuery)
r.logger.Debug("GetServicesQuery : %s ", kustoStmt.String())
iter, err := r.client.Query(ctx, r.database, kustoStmt, append(r.defaultReadOptions, kusto.ClientRequestID(clientRequestId))...)
if err != nil {
r.logger.Error("Failed running GetServices query. ClientRequestId : %s", clientRequestId)
return nil, err
}
defer iter.Stop()
type Service struct {
ServiceName string `kusto:"ProcessServiceName"`
}
var services []string
err = iter.DoOnRowOrError(
func(row *table.Row, e *errors.Error) error {
if e != nil {
return e
}
service := Service{}
if err := row.ToStruct(&service); err != nil {
return err
}
services = append(services, service.ServiceName)
return nil
},
)
if err != nil {
return nil, err
}
return services, err
}