Update (disabled) telemetry settings.

This commit is contained in:
James Cole
2020-03-21 15:42:37 +01:00
parent cf4f76f211
commit f76585dc9b
48 changed files with 95 additions and 49 deletions

View File

@@ -82,6 +82,7 @@ class CorrectDatabase extends Command
$result = Artisan::output();
echo $result;
}
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -76,6 +76,8 @@ class CorrectOpeningBalanceCurrencies extends Command
$this->info('There was nothing to fix in the opening balance transactions.');
}
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -77,6 +77,7 @@ class CreateAccessTokens extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verify access tokens in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -78,6 +78,7 @@ class CreateLinkTypes extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified link types in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -74,6 +74,7 @@ class DeleteEmptyGroups extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified empty groups in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -57,7 +57,7 @@ class DeleteEmptyJournals extends Command
{
$this->deleteUnevenJournals();
$this->deleteEmptyJournals();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -61,7 +61,7 @@ class DeleteOrphanedTransactions extends Command
$this->deleteFromOrphanedAccounts();
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified orphans in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -77,6 +77,7 @@ class DeleteZeroAmount extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified zero-amount integrity in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -100,6 +100,7 @@ class EnableCurrencies extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified currencies in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -105,7 +105,7 @@ class FixAccountTypes extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verifying account types took %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -73,7 +73,7 @@ class FixLongDescriptions extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified all transaction group and journal title lengths in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
}

View File

@@ -97,7 +97,7 @@ class FixPiggies extends Command
$end = round(microtime(true) - $start, 2);
$this->line(sprintf('Verified the content of %d piggy bank events in %s seconds.', $set->count(), $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
}

View File

@@ -65,7 +65,7 @@ class FixRecurringTransactions extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Corrected recurring transactions %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -74,7 +74,7 @@ class FixUnevenAmount extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified amount integrity in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -70,7 +70,7 @@ class RemoveBills extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified bills / journals in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
}

View File

@@ -82,7 +82,7 @@ class RenameMetaFields extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Renamed meta fields in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -73,7 +73,7 @@ class TransferBudgets extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified budget/journals in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
}

View File

@@ -55,7 +55,6 @@ class CreateDatabase extends Command
{
if ('mysql' !== env('DB_CONNECTION')) {
$this->info(sprintf('CreateDB does not apply to "%s", skipped.', env('DB_CONNECTION')));
return 0;
}
// try to set up a raw connection:
@@ -69,7 +68,6 @@ class CreateDatabase extends Command
$pdo = new PDO($dsn, env('DB_USERNAME'), env('DB_PASSWORD'), $options);
} catch (PDOException $e) {
$this->error(sprintf('Error when connecting to DB: %s', $e->getMessage()));
return 1;
}
// with PDO, try to list DB's (

View File

@@ -117,7 +117,7 @@ class DecryptDatabase extends Command
}
$this->info('Done!');
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -135,8 +135,10 @@ class ExportData extends Command
$this->exportData($options, $data);
} catch (FireflyException $e) {
$this->error(sprintf('Could not store data: %s', $e->getMessage()));
// app('telemetry')->feature('executed-command-with-error', $this->signature);
return 1;
}
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -127,7 +127,7 @@ class CreateCSVImport extends Command
$this->processFile();
} catch (FireflyException $e) {
$this->errorLine($e->getMessage());
// app('telemetry')->feature('executed-command-with-error', $this->signature);
return 1;
}
@@ -136,7 +136,7 @@ class CreateCSVImport extends Command
$this->storeData();
} catch (FireflyException $e) {
$this->errorLine($e->getMessage());
// app('telemetry')->feature('executed-command-with-error', $this->signature);
return 1;
}
@@ -145,7 +145,7 @@ class CreateCSVImport extends Command
// clear cache for user:
app('preferences')->setForUser($user, 'lastActivity', microtime());
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -63,7 +63,7 @@ class ReportEmptyObjects extends Command
$this->reportBudgetLimits();
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Report on empty objects finished in %s seconds', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -68,7 +68,7 @@ class ReportIntegrity extends Command
$result = Artisan::output();
echo $result;
}
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
}

View File

@@ -53,7 +53,7 @@ class ReportSum extends Command
public function handle(): int
{
$this->reportSum();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -50,7 +50,7 @@ class RestoreOAuthKeys extends Command
public function handle(): int
{
$this->restoreOAuthKeys();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -85,7 +85,7 @@ class ScanAttachments extends Command
$attachment->save();
$this->line(sprintf('Fixed attachment #%d', $attachment->id));
}
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
}

View File

@@ -1,5 +1,5 @@
<?php
declare(strict_types=1);
/**
* SetLatestVersion.php
@@ -59,8 +59,7 @@ class SetLatestVersion extends Command
app('fireflyconfig')->set('ff3_version', config('firefly.version'));
$this->line('Updated version.');
//Telemetry::string('db_version', config('firefly.db_version'));
//Telemetry::string('ff3_version', config('firefly.version'));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -112,6 +112,7 @@ class ApplyRules extends Command
$result = $this->verifyInput();
if (false === $result) {
// app('telemetry')->feature('executed-command-with-error', $this->signature);
return 1;
}
@@ -129,6 +130,8 @@ class ApplyRules extends Command
$this->warn(' --rules=1,2,...');
$this->warn(' --rule_groups=1,2,...');
$this->warn(' --all_rules');
// app('telemetry')->feature('executed-command-with-error', $this->signature);
return 1;
}
/** @var GroupCollectorInterface $collector */
@@ -162,7 +165,7 @@ class ApplyRules extends Command
}
$this->line('');
$this->line('Done!');
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -93,7 +93,7 @@ class Cron extends Command
}
$this->info('More feedback on the cron jobs can be found in the log files.');
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -86,6 +86,7 @@ class AccountCurrencies extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified and fixed account currencies in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -77,6 +77,7 @@ class BackToJournals extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Updated category and budget info for all transaction journals in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -91,6 +91,7 @@ class BudgetLimitCurrency extends Command
$this->info(sprintf('Verified budget limits in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -90,6 +90,7 @@ class CCLiabilities extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified credit card liabilities in %s seconds', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -100,6 +100,7 @@ class MigrateAttachments extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Migrated attachment notes in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -99,6 +99,7 @@ class MigrateJournalNotes extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Migrated notes in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -70,6 +70,7 @@ class MigrateRecurrenceMeta extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Migrated recurrence meta data in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -63,7 +63,7 @@ class MigrateTagLocations extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Migrated tag locations in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -111,7 +111,7 @@ class MigrateToGroups extends Command
$this->markAsMigrated();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -98,7 +98,7 @@ class MigrateToRules extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified and fixed bills in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -89,7 +89,7 @@ class OtherCurrenciesCorrections extends Command
$this->line(sprintf('Verified %d transaction(s) and journal(s).', $this->count));
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified and fixed transaction currencies in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -90,7 +90,7 @@ class RenameAccountMeta extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Fixed account meta data in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -100,7 +100,7 @@ class TransactionIdentifier extends Command
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified and fixed transaction identifiers in %s seconds.', $end));
$this->markAsExecuted();
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -110,7 +110,7 @@ class TransferCurrenciesCorrections extends Command
}
$end = round(microtime(true) - $start, 2);
$this->info(sprintf('Verified and fixed currency information for transfers in %s seconds.', $end));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -116,7 +116,7 @@ class UpgradeDatabase extends Command
app('fireflyconfig')->set('db_version', (int) config('firefly.db_version'));
// index will set FF3 version.
app('fireflyconfig')->set('ff3_version', (string) config('firefly.version'));
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}

View File

@@ -56,7 +56,7 @@ class UpgradeFireflyInstructions extends Command
if ('install' === (string) $this->argument('task')) {
$this->installInstructions();
}
// app('telemetry')->feature('executed-command', $this->signature);
return 0;
}
@@ -102,7 +102,6 @@ class UpgradeFireflyInstructions extends Command
}
}
// app('telemetry')->string('show-install-instructions', $version);
$this->showLine();
$this->boxed('');
@@ -151,8 +150,6 @@ class UpgradeFireflyInstructions extends Command
}
}
//app('telemetry')->string('show-update-instructions', $version);
$this->showLine();
$this->boxed('');
if (null === $text) {

View File

@@ -34,5 +34,15 @@ class Telemetry extends Model
/** @var array */
protected $fillable = ['installation_id', 'submitted', 'user_id', 'key', 'type', 'value'];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts
= [
'submitted' => 'datetime',
'value' => 'array',
];
}

View File

@@ -30,9 +30,12 @@ use Log;
class Telemetry
{
/**
* Feature telemetry stores a boolean "true" for the given $flag.
* Feature telemetry stores a $value for the given $feature.
* Will only store the given $feature / $value combination once.
*
*
* Examples:
* - execute-cli-command [value]
* - use-help-pages
* - has-created-bill
* - do-big-import
@@ -44,18 +47,21 @@ class Telemetry
*
* Any meta-data stored is strictly non-financial.
*
* @param string $flag
* @param string $key
* @param string $value
*/
public function feature(string $flag): void
public function feature(string $key, string $value): void
{
if (false === config('firefly.send_telemetry') || false === config('firefly.feature_flags.telemetry')) {
// hard stop if not allowed to do telemetry.
// do nothing!
return;
}
Log::info(sprintf('Logged telemetry feature flag "%s".', $flag));
$this->storeEntry('flag', $flag, '');
Log::info(sprintf('Logged telemetry feature "%s" with value "%s".', $key, $value));
if (!$this->hasEntry('feature', $key, $value)) {
$this->storeEntry('feature', $key, $value);
}
}
/**
@@ -79,7 +85,23 @@ class Telemetry
Log::info(sprintf('Logged telemetry string "%s" with value "%s".', $name, $value));
// no storage backend yet, do nothing.
$this->storeEntry('string', $name, json_encode($value, JSON_THROW_ON_ERROR, 512));
$this->storeEntry('string', $name, $value);
}
/**
* @param string $type
* @param string $key
* @param string $value
*
* @return bool
*/
private function hasEntry(string $type, string $key, string $value): bool
{
return TelemetryModel
::where('type', $type)
->where('key', $key)
->where('value', json_encode($value, JSON_THROW_ON_ERROR, 512))
->count() > 0;
}
/**

View File

@@ -56,8 +56,8 @@ class ChangesForV520 extends Migration
$table->dateTime('submitted')->nullable();
$table->integer('user_id', false, true)->nullable();
$table->string('installation_id', 50);
$table->string('key', 50);
$table->string('type', 25);
$table->string('key', 50);
$table->text('value');
$table->foreign('user_id')->references('id')->on('users')->onDelete('set null');