Current section
Files
Jump to
Current section
Files
src/tree_weaver_telemetry.erl
-module(tree_weaver_telemetry).
-export([report_usage/2, analyze_trends/1]).
report_usage(ProjectType, Metadata) ->
case application:get_env(tree_weaver, telemetry_enabled) of
{ok, true} ->
spawn(fun() ->
AnonymizedPayload = anonymize_payload(#{
timestamp => os:timestamp(),
project_type => ProjectType,
os => os:type(),
erlang_version => erlang:system_info(otp_release),
metadata => Metadata
}),
send_telemetry(AnonymizedPayload)
end);
_ ->
ok
end.
anonymize_payload(Payload) ->
Payload#{
os_hash => crypto:hash(sha256, term_to_binary(maps:get(os, Payload))),
version_hash => crypto:hash(sha256, term_to_binary(maps:get(erlang_version, Payload)))
}.
% Implement send_telemetry function
send_telemetry(_Payload) ->
% Placeholder implementation
ok.
analyze_trends(_Period) ->
% Placeholder implementation
{ok, []}.