Releases: usergeek/canistergeek-ic-motoko
Releases · usergeek/canistergeek-ic-motoko
New static method `Canistergeek.getInformation` added to reduce information from monitor and logger.
New static method `Canistergeek.getInformation` added to reduce information from monitor and logger.
Latest
Full example:
import Canistergeek "../canistergeek/canistergeek";
actor {
stable var _canistergeekMonitorUD: ? Canistergeek.UpgradeData = null;
private let canistergeekMonitor = Canistergeek.Monitor();
stable var _canistergeekLoggerUD: ? Canistergeek.LoggerUpgradeData = null;
private let canistergeekLogger = Canistergeek.Logger();
private let adminPrincipal: Text = "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxx";
system func preupgrade() {
_canistergeekMonitorUD := ? canistergeekMonitor.preupgrade();
_canistergeekLoggerUD := ? canistergeekLogger.preupgrade();
};
system func postupgrade() {
canistergeekMonitor.postupgrade(_canistergeekMonitorUD);
_canistergeekMonitorUD := null;
canistergeekLogger.postupgrade(_canistergeekLoggerUD);
_canistergeekLoggerUD := null;
canistergeekLogger.setMaxMessagesCount(3000);
canistergeekLogger.logMessage("postupgrade");
};
public query ({caller}) func getCanistergeekInformation(request: Canistergeek.GetInformationRequest): async Canistergeek.GetInformationResponse {
validateCaller(caller);
Canistergeek.getInformation(?canistergeekMonitor, ?canistergeekLogger, request);
};
public shared ({caller}) func updateCanistergeekInformation(request: Canistergeek.UpdateInformationRequest): async () {
validateCaller(caller);
canistergeekMonitor.updateInformation(request);
};
private func validateCaller(principal: Principal) : () {
//data is available only for specific principal
if (not (Principal.toText(principal) == adminPrincipal)) {
Prelude.unreachable();
}
};
public shared ({caller}) func doThis(): async () {
canistergeekMonitor.collectMetrics();
canistergeekLogger.logMessage("doThis");
// rest part of the your method...
};
public shared ({caller}) func doThat(): async () {
canistergeekMonitor.collectMetrics();
canistergeekLogger.logMessage("doThat");
// rest part of the your method...
};
}
New API: getCanistergeekInformation/updateCanistergeekInformation
API change in 0.0.6 version
Starting from version 0.0.6
Monitor
has new API methods:
updateInformation
method will replacecollectMetrics
methodgetInformation
method will replacegetMetrics
method
New methods provide an opportunity to evolve API in the future.
Legacy methods (collectMetrics
and getMetrics
) still available.
Nat32 custom Hash function
This release removes a lot of warnings in latest DFX versions
Log Messages
Merge pull request #1 from usergeek/logMessages Log Messages
Initial release
v0.0.1 README