ETL Developers' Guide - Application Configuration

The Ed-Fi “Classic Dashboards” are no longer supported through the Ed-Fi Alliance. You can still receive support and maintenance through the Ed-Fi vendor community. Please look at any of the vendors’ dashboard solutions on the Registry of Ed-Fi Badges or the Ed-Fi Starter Kits if you are looking for a visualization solution to use with the Ed-Fi ODS. This documentation will remain available to assist existing Classic Dashboard implementers.

ETL Developers' Guide - Application Configuration

The Ed-Fi Dashboards v3.0 ETL Application has a number of built-in configuration and extensibility options that will allow you to customize application behavior without coding.

All application configuration settings are located in the App.config file in the EdFi.Runtime folder. When deployed to production, the settings are located in the EdFi.Runtime.exe.config file in the EdFi.Runtime folder.

General Application Settings

The ETL Application runtime has a number of general settings that determine how it will run. 

Application-Related Settings

These are settings that affect how the executable itself runs.

Setting Name

Possible Values

Description

Setting Name

Possible Values

Description

MinimumLogLevel

Verbose, Debug, Information, Warning, Error, Fatal

Sets the logging level for the ETL. Performance may be adversely affected when the logging level is set to "Verbose", so this setting should only be used for active troubleshooting. The default setting is "Information".

Example:
<add key="MinimumLogLevel" value="Information" />

EnableConsoleLogging

boolean

Shows log output in the console.

Example:
<add key="EnableConsoleLogging" value="false" />

SqlQueryCommandTimeout

int

Sets the SQL query command timeout. Specified in seconds.

Example:
<add key="SqlQueryCommandTimeout" value="120" />

All application configuration settings must be present in the App.config file, otherwise the executable will throw a fatal exception.

Metric-Related Settings

These are settings related to how certain metrics will be calculated implementation-wide. 

Setting Name

Possible Values

Description

Setting Name

Possible Values

Description

DailyAttendanceCalculationSource 

Both, School, Section

For Daily Attendance Rate calculations, this setting determines which method below is used.

  • If the flag is set to "School", then Daily Attendance is used.

  • If the flag is set to "Section", then Section Attendance is used.

  • If the flag is set to "Both" (which is the default), then both are used. In the case of a student having both, priority is given to Daily Attendance.

Example:
<add key="DailyAttendanceCalculationSource" value="Both" />

ReportingPeriodLastXDays

int

For attendance calculations, this setting provides the range of instructional days upon which to perform the metric calculation. For example, a reporting period of four weeks is 20 instructional days.

Example:
<add key="ReportingPeriodLastXDays" value="20" />

ReportingPeriodLastYDays

int

For attendance calculations, this setting provides range of instructional days to perform the metric calculation. For example, a reporting period of eight weeks is 40 instructional days.

Example:
<add key="ReportingPeriodLastYDays" value="40" />

APScoreMasteryLevel

int

For student advanced course mastery calculations, this setting provides the threshold for AP score mastery.

Example:
<add key="APScoreMasteryLevel" value="3" />

IBScoreMasteryLevel

int

For student advanced course mastery calculations, this setting provides the threshold for IB score mastery.

Example:
<add key="IBScoreMasteryLevel" value="4" />

DaysNeededForLateEnrollment

int

For student information calculations, this setting provides the number of calendar days after which a student is considered for late enrollment.

Example:
<add key="DaysNeededForLateEnrollment" value="14" />

RunOnlyYearEndSnapshot

boolean

If set to true, the ETL will roll over the end-of-year metric calculations from the DDS to the DDW. The ETL will not re-calculate metrics in the DDS prior to the rollover.

Example:
<add key="RunOnlyYearEndSnapshot" value="false" />

IncludeWithdrawnStudents

boolean

When true, students who have withdrawn from school or are not enrolled will be processed normally. If false, students not enrolled in school will be excluded from output and metric calculations. The default is true.

Example:
<add key="IncludeWithdrawnStudents" value="true" />

Advanced Settings

This section covers advanced settings useful for performance tuning, debugging the ETL Application runtime execution, and so forth.

Setting Name

Possible Values

Description

Setting Name

Possible Values

Description

ExcludeExtensionList

Names of metric extensions (e.g., StudentAttendance, StudentCourseGrades)

Comma-separated list of container metric projects to exclude from the ETL execution. Commonly used to debug.

Example:
<add key="ExcludeExtensionList" value="" />

CacheAllQueries

boolean

Caches streamed objects in bus. Commonly used for debugging the ETL but may also be necessary if dealing with large datasets to avoid timeouts.

Example:
<add key="CacheAllQueries" value="false" />

DryRun

boolean

When DryRun is true the ETL does not write to the output databases. Commonly used for debugging the ETL.

Example:
<add key="DryRun" value="false" />

UseFileBuffer

boolean

When the streamed data reaches the BulkCopyBufferSizeMax, the data in the buffer will be written to a file, to free up memory. The file will be read into SQL Server using SQL Bulk Copy.

This feature is useful when dealing with large datasets (i.e., 250K+ students).

Example:
<add key="UseFileBuffer" value="false" />

FileBufferLocation

Path to folder (e.g., C:\Windows\Temp)

When UseFileBuffer is true, FileBufferLocation specifies the directory into which the file will be written. SQL Server must have permissions to read the directory. The ETL application must have permissions to write to the directory.

The disk containing the directory must be able to store the amount of data being buffered to the server, which depends on the amount of data in the ODS. The storage requirements listed in the ETL Developers' Guide - Overview should be sufficient for this process.

Example:
<add key="FileBufferLocation" value="C:\Windows\Temp" />

CalculateDailyHistoricalAttendance

boolean

Determines if daily historical attendance calculations are performed. Daily historical attendance is a time-consuming process, so the feature can be turned off. However, the historical graph for attendance will not show the daily period link.

Example:
<add key="CalculateDailyHistoricalAttendance" value="true" />

RebuildHistoricalCalculations

boolean

When true, the ETL will recalculate historicals for all time periods in the current school year. When false, the ETL will only calculate historical metrics for time periods that have not been completed previously.

Example:
<add key="RebuildHistoricalCalculations" value="true" />

SessionTraceFlags

Comma-separated list of ints

Turns on SQL Server trace flags for executed queries.

Example:
<add key="SessionTraceFlags" value="" />

This requires SQL Server Administrator rights which is not recommended for production environments. The current use is only for running integration tests disabling SQL Read Ahead.

Example:
<add key="SessionTraceFlags" value="8744,652" />

DashboardLink

string

Used for advanced linked server configurations only: for most configurations, this option should be left as default, which is empty.

Linked server name for the instance containing the Dashboard.

For users with a linked server configuration where the Data Warehouse and Dashboard exist on different instances, ensure that the Data Warehouse has a linked server configured by this name with access to the Dashboard.

Example:
<add key="DashboardLink" value="SERVER\DDSLINK" />

OdsLink

string

Used for advanced linked server configurations only. For most configurations, this option should be left as default, which is empty.

Linked server name for the instance containing the ODS.

For users with a linked server configuration where the Data Warehouse and ODS exist on different instances, ensure that the Data Warehouse has a linked server configured by this name with access to the ODS.

Example:
<add key="OdsLink" value="SERVER\ODSLINK" />